File Parser Requirements
Every file parser must implement the following functions.
The display engine calls these functions to display a file of the type
supported by the file parser.
The display engine starts the file viewing process by calling
VwStreamOpenFunc, sending the name of a file to the file parser. The first responsibility of
any parser is to verify that the given file has the proper format and can be
processed. If the file is viewable, the file parser returns a value to the display
engine acknowledging the request.
Once the parser completes verification, the display engine calls
VwStreamSectionFunc, directing the file parser to identify the type and name of the first section
of the file to be processed. A
section is a portion of the file in which all the data is of one type; it forms a
logical breaking point for the processing of the file. The standard section types
are word processing, spreadsheet, database, bitmapped graphics, and vector
graphics. A file can consist of a single section, multiple sections of the same
type, or a combination of sections of different types. The actions that the
display engine takes to display the file depend on the type of section currently
being processed. The file parser must call the
SOPutSectionType and
SOPutSectionName functions to output the section type and to set the section name.
Before the file parser returns from
VwStreamSectionFunc, it may need to provide the display engine with additional information. If
the portion to be processed is a word processing section, the file parser must
set entries for the font table by using the
SOPutFontTableEntry function. If it is a spreadsheet section, the file parser must set the column
width by calling the
SOPutColumnInfo function. If it is a database section, the file parser must set the field
format by calling the
SOPutFieldInfo function. The file parser can also set the date base used by spreadsheets and
databases to calculate dates by using the
SOSetDateBase function. In addition, the file parser can set header entries by calling the
SOPutHdrEntry function.
After the section type and general information is set, the display engine
requests data for the section by calling
VwStreamReadFunc. The file parser fulfills this request by calling the stream output
functions. These functions pass the data to the display engine in a form that is easiest
for the engine to display, copy to the clipboard, or write to disk.
The stream output functions used by the file parser depend on the section
type. For word processing sections, the file parser uses the
SOPutParaSpacing,
SOPutCharAttr, and
SOPutChar functions to set the spacing for paragraphs, set the style attributes for
characters, and output characters. For spreadsheet sections, the parser uses the
SOPutDataCell and
SOPutTextCell functions to output the content (data or text) of cells. For database
sections, it uses the
SOPutField and
SOPutVarField functions to output the data of fields. The parser uses the
SOPutBitmapHeader and
SOPutScanLineData functions for bitmapped graphics sections and the
SOVectorAttr and
SOVectorObject functions for vector graphics sections.
To set a break for a paragraph, cell, or field, the file parser calls the
SOPutBreak function with an appropriate value, either SO_PARABREAK, SO_CELLBREAK, or
SO_RECORDBREAK. The return value from
SOPutBreak tells the file parser how to proceed. If it is the SO_STOP value, the file
parser stops all processing and returns from
VwStreamReadFunc.
The file parser continues to output data until it reaches the end of the
section. The parser must end a section by calling
SOPutBreak with the SO_SECTIONBREAK value. If this is the last section in the file, the
file parser indicates that the end of the file has been reached by using the
SO_EOFBREAK value instead.
If there are subsequent sections in the file, the display engine calls
VwStreamSectionFunc again to request the type and name of the next section, and processing
continues just as it did for the first section.
After the last section, the display engine calls
VwStreamCloseFunc to indicate that processing is complete and that no further requests for data
will be made. The file parser must close the file and any related files it has
opened and clean up resources, such as freeing memory.
If an error occurs while a file is parsed, the file parser should call the
SOBailOut function to notify the display engine of the error condition. The parser must
immediately return from
VwStreamReadFunc after calling the
SOBailOut function.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database