Eric,
In the files section, there is a tool that do all of what you want.
HTH
>>I'm creating a program that will extract all the index information of a file. I used TAG() to determine the index name, KEY() for the index expresion.
>>Is there a function that returns order (ASCENDING or DESCENDING), and a function that returns the index type (Regular, Primary, Candidate, Unique), and also the Filter Expression.
>>Thanks in advance!
>
>You look into this program Eric. It list down index expression of your table.
>
>**************************************
>**
>** Function : GetIndexExpr
>** Purpose : Creates list of index expression of a table
>** Params : cTable (character) - table name
>** Programmer : Jess S. Banaga
>** Date Started: 03/02/2000
>** Modified : 03/20/2000 - to accomodate multi-table structure printing
>**
>** Syntax : Old - GetIndexExpr('tablename.dbf')
>** New - GetIndexExpr()
>**
>**************************************
>
>** Get table name
>gcTable = GETFILE('DBF','Create Index Expression File','Create File')
>IF !EMPTY(gcTable)
> ** invoke procedure to get index expression
> DO GetExpr WITH SUBSTR(gcTable,1,RAT('.',gctable))
>ELSE
> ** specify directory folder to scan
> gcDIR = GETDIR(FULLPATH(''),'Directory Table')
>
> IF !EMPTY(gcDIR)
>
> ** assign table list to array variable
>
> nCntr = ADIR(cTableFile,'*.DBF')
>
> ** scan array variable
>
> FOR i = 1 TO nCntr
> gcTable = cTableFile(i,1)
>
> ** invoke procedure to get index expression
> DO GetExpr WITH gcTable
> ENDFOR
> ENDIF
>ENDIF
>CLOSE ALL
>RETURN
>>**************************************
>>** End fo program GetIndexExpr
>>** Date Finished : 03/02/2000
>>**************************************
>
>>**************************************
>>** Procedure : GetExpr
>>** Purpose : Creates Text File
>>** Params : cTable - Table Name
>>**************************************
>>PROCEDURE GetExpr ( cTable )
>
>>cFile = ctable+'.txt'
>>SET DEVICE TO FILE &cFile
>>@PROW(),00 SAY 'TABLE NAME : '+cTable
>>@PROW(),00 SAY ' '
>>@PROW(),00 SAY 'INDEX TAG NAME INDEX EXPRESSION'
>>@PROW(),00 SAY '-------------------- >-------------------------------------------------'
>>FOR i = 1 TO TAGCOUNT()
>
>> ** GET index tab
>> cIndexTag = ALLT(TAG(ctable,i,ctable))
>
>> ** GET INDEX EXPRESSION
>> cIndexExpr = ALLT(SYS(14,i,ctable))
>
>> @PROW(),00 SAY cIndexTag
>> @PROW(),20 SAY cIndexExpr
>
>>ENDFOR
>
>>** Look the output now
>>modi comm (ctable) noedit
>>USE IN (cTable)
>>SET DEVICE TO SCREEN
>
>
>>HTH
>
>Thank a lot Jess!
>How about the:
> - order (ASCENDING/DESCENDING)
> - index type (Regular, Primary, Unique, Candidate)
> - and the filter expression/condition (ex. "!EMPTY(name)")
>Waiting for your reply...
>eric
JESS S. BANAGA
Project Leader - SDD division
...shifting from VFP to C#.Net
CHARISMA simply means: "Be more concerned about making others feel good about themselves than you are in making them feel good about you."