Delayed Data Transfer

An external reader is usually called several times while importing data. This process allows you to specify what file information you want to access.

The translator is first called to retrieve information about the structure of the file and the names of its components to be used in the interface. At this point, all data from the translated file can be transferred or specific data can be accessed to limit memory use and the possibility of swapping.

If you only want to access information about the file structure and not information about what the file contains, the translator with a command-line switch that the abfCommandLine() function interprets is invoked. abfDelayed() tells you whether the translator has been invoked in this way. If the result is non-zero, then it is unnecessary to actually translate or specify any data. After defining the structure of the ABF file by creating all the datatypes, requests, and components, call abfWriteHeader() and then abfCloseFile().

If data is requested (that is, abfDelayed() returns zero), you can test whether the data for a particular component was requested by calling abfRequested(). The index of the datatype, request, and component of the component in question is passed to the function. The first datatype, the first request in a datatype, and the first component or instance of a component in a request each has an index of zero. If abfRequested() returns a non-zero result, it is necessary to use abfAddReals() or its kin to specify that data. Otherwise, you can ignore that component and only its name is transferred to the program you are using.