| GrafX Software |
FlexFile III To Order Page( Product will be shipped Via Federal Express ) Overview: FlexFile is a very focused tool kit for CA-Clipper programmers. Its first and main purpose is to provide a complete replacement for CA-Clipper's memo-fields with a more powerful and more efficient Variable Length Field engine. This engine has been optimized in FlexFile II to be more secure, faster, save even more space and be even easier to use. FlexFile extends CA-Clipper's memo-fields by allowing any valid data type (with the exception of Code Blocks) to be stored in a memo-field. This includes multi-dimensional arrays and CA-Clipper or Class(y) objects. Using this feature, you can store an array of notes (or an array of objects) just as easily as a note. If you have two memo-fields in a CUSTOMER data base called Notes and Telephone, the following syntax is legal: cNotes := "This is a normal CA-Clipper text string" aTele := { "(305) 735-2334", "(305) 486-3649" } REPLACE cust->notes WITH cNotes REPLACE cust->telephone WITH aTele In addition, FlexFile's memo-fields are not limited to the 65K byte length of its CA-Clipper counterpart. This allows the storage into a FlexFile of things like huge arrays, graphics files, word processor files and more. FlexFile comes with a host of functions to manipulate all this data. The additional features new in version 3.0 are: _ RDD (Replaceable Device Driver) _16 Bit DLL _32 Bit DLL _Industry standard FoxPro extention FPT _ Seamless Data Compression _ FlexScan rapid text scanner _ FlexHelp, a powerful yet simple Hyper Text help system _ Extra security through diagnostic and recovery tools _ New API (Application Programmer Interface) functions A most powerful feature of FlexFile, its ease of use, has grown even more powerful with the RDD. Simply put, an RDD allows theprogrammer to use standard CA-Clipper memo-field syntax (as in theexample below) and still benefit from the features of FlexFile. At the same time, FlexFile has complete backward compatibility with the function based system of its earlier versions. RDD Example: #include "FlexRDD.ch" LOCAL aTele // With the RDD linked in, this creates a // DBF/DBV pair instead of the clunky DBF/DBT DBCREATE("TEMP.DBF", {{"FNAME", "C", 20, 0} ,; {"LNAME", "C", 25, 0} ,; {"TELE", "M", 10, 0}} ,; "FLEXFILE" ) USE temp VIA "FLEXFILE" APPEND BLANK temp->fname := "Charles" temp->lname := "Ives" // Now comes the fun part. Create an array of // telephone numbers and store it in a field. aTele := { "(305) 735-2334",; "(305) 486-3649",; "(305) 484-8394" } // Now we not only get to store an array, we also // get to store it efficiently in the FlexFile. temp->tele := aTele Notice that in this example, the syntax that you have used in the past to manage memo-fields is identical to the syntax with which you can now harness the power of FlexFile! All of the global CA-Clipper commands are fully functional. Some are even enhanced. For example, USE temp VIA "FLEXFILE" COPY TO junk VIA "FLEXFILE" This runs the standard COPY TO command of CA-Clipper, however, it also allows the programmer to import and export to different file formats. For example, if you wanted to APPEND FROM a data base that was created with the inefficient FoxPro FPT format, you could do the following: // Assume that "slim.dbf" is a DBF/DBV pair. USE slim.dbf VIA "FLEXFILE" // Now APPEND FROM a DBF/FPT pair that was // created by the inefficient CDX driver. APPEND FROM bloated.dbf VIA "DBFCDX" FlexFile III Function List V_ALIAS() Return the alias of a DBV work area V_AND() Perform a Logical AND of two or more integers V_BUFFERS() Get/Set the buffer size for compression and scanning V_CLOSE() Close a DBV type file V_CLOSEALL() Close all open DBV type files V_CMPFILE() Compress a DOS file into a smaller DOS file V_CMPSTR() Compress a CA-Clipper CHARACTER type variable V_COMMIT() Commit the DOS buffers to disk V_CREATE() Create a DBV file V_DBV2DBV() Copy a VLF from one DBV to another V_DECRYPT() Decrypt a string previously encrypted by V_ENCRYPT() V_DELETE() Delete one field from a DBV file V_ENCRYPT() Encrypt a Clipper string variable V_ERROR() Report specific FlexFile Errors V_EXCLUSIV() Establish Exclusive or Shared use of a DBV type file V_EXPFILE() Expand a DOS file that was previously V_CMPFILE()ed V_EXPSTR() Expand a string that has been V_CMPSTR()ed V_FILE2VLF() Copy a DOS file into a VLF optionally compressed V_FILENAME() Return the file name of a VLF file V_FILES() Set maximum number of DBV files V_FILLARR() Fill Clipper S87 array with DBV field V_HANDLE() Return the DOS file handle for a DBV file V_INTEGRITY() Test the Integrity of a FlexFile DBV V_ISFLEX() Test if a DBF file will use the FlexFile RDD V_ISOPEN() Determine if a file is open in an area V_LEN() Return the length of data stored in a DBV V_MEMOGET() Get a six byte Pointer-Field from a DBF memo-field V_MEMOPUT() Put a six byte Pointer-Field into a DBF V_OR() Perform a Logical OR of two or more integers V_POKE() Write character data into a character type VLF V_PTR() Return absolute offset of data in a DBV file V_QRY_CHK() Validate a V_QRY_xxx() expression V_QRY_DBF() Scan a DBF file for a string or combination of strings V_QRY_DBV() Scan a DBV file for a string or combination of strings V_QRY_GEN() Scan any generic file for a string V_QRY_META() V_QRY_DBV() multi-field data search V_RANDOM() Return a pseudo random number V_RDDNAME() Test if the current workarea is a FlexFile RDD V_RECOVER() Recover if V_INTERITY() fails V_REPLACE() Replace data stored in a DBV file V_RETRIEVE() Return data stored in a DBV file V_SELECT() Determine or select the FlexFile DBV work area V_SETCMP() Turn on/off or set automatic data Compression V_SETEXT() Set a default file extension other than .DBV V_SETKEY() Set a key or password for FlexFile encryption V_SET_COMM() Set DOS buffer flushing automatically on/off V_SET_RECU() Set FlexFile to enable self-referential arrays V_STUFF() Delete and insert new data into an existing VLF V_SUPERRDD() Set the RDD from which FlexFile will inherit V_TOPLOCK() Obtain a field lock on the Top Pointer V_TOPPTR() Read/Replace FlexFile pointer in a DBV header V_TOPUNLOCK() Release any locks on the V_TOPPTR() V_TYPE() Return the type of data stored in a VLF V_USE() Open a Variable Length Field file (DBV) V_VLF2FILE() Create DOS file and fill with the a VLF field V_WALK_DBV() Step from field to field in a DBV without a DBF
|
|