__FLEDIT()*

Filter a database structure array

Syntax

__FLEDIT( <aStruct>, [<aFieldList>] ) --> aStructFiltered

Arguments

<aStruct> is a multidimensional array with database fields structure, which is usually the output from DBSTRUCT(), where each array element has the following structure:

PositionDescriptiondbstruct.ch
1cFieldNameDBS_NAME
2cFieldTypeDBS_TYPE
3nFieldLengthDBS_LEN
4nDecimalsDBS_DEC

<aFieldList> is an array where each element is a field name. Names could be specified as uppercase or lowercase.

Returns

__FLEDIT() return a new multidimensional array where each element is in the same structure as the original <aStruct>, but the array is built according to the list of fields in <aFieldList>. If <aFieldList> is empty, __FLEDIT() return reference to the original <aStruct> array.

Description

__FLEDIT() can be use to create a sub-set of a database structure, based on a given field list.

Note that field names in <aStruct> MUST be specified in uppercase or else no match would found.

SET EXACT has no effect on the return value.

__FLEDIT() is a compatibility function and it is synonym for __dbStructFilter() which does exactly the same.
Examples
      LOCAL aStruct, aList, aRet
      aStruct := { { "CODE",  "N",  4, 0 }, ;
                   { "NAME",  "C", 10, 0 }, ;
                   { "PHONE", "C", 13, 0 }, ;
                   { "IQ",    "N",  3, 0 } }
      aList := { "IQ", "NAME" }
      aRet := __FLEDIT( aStruct, aList )
                        // { { "IQ", "N", 3, 0 }, { "NAME", "C", 10, 0 } }

      aRet := __FLEDIT( aStruct, {} )
      ? aRet == aStruct // .T.

      aList := { "iq", "NOTEXIST" }
      aRet := __FLEDIT( aStruct, aList )
                        // { { "IQ", "N", 3, 0 } }

      aList := { "NOTEXIST" }
      aRet := __FLEDIT( aStruct, aList )   // {}


      // Create a new file that contain part of the original structure
      LOCAL aStruct, aList, aRet
      USE TEST
      aStruct := DBSTRUCT()
      aList := { "NAME" }
      DBCREATE( "OnlyName.DBF", __FLEDIT( aStruct, aList ) )
Status

Ready

Compliance

CA-Clipper has internal undocumented function named __FLEDIT(), in Harbour we name it __dbStructFilter(). The new name gives a better description of what this function does. In Harbour __FLEDIT() simply calls __dbStructFilter() and therefor the later is the recommended function to use.

This function is only visible if source/rdd/dbstrux.prg was compiled with the HB_C52_UNDOC flag.

Platforms

All

Files

Header file is dbstruct.ch Library is rdd

See Also