The pxtools provide a API for Paradox-files. It is implemented by pxparse.c
and pxconvert.c.

pxparse.c
---------

px_fieldInfo**  PXparseCompleteHeader (int fd, px_header *header);
DESCIPTION
	PXparseCompleteHeader parses the header of the paradox-file that is
	specified by the filedescriptor fd. 
RETURN VALUE
	PXparseCompleteHeader returns the field-info and the header or NULL
	on error.

px_blocks**     PXparseBlocks (int fd, px_header *header);
DESCIPTION
	PXparseBlocks parses datafields of the paradox-file that is
	specified by the filedesciptor fd according to the informations from
	header.
RETURN VALUE
	PXparseBlocks returns the blocks or NULL on error.

pxconvert.c
-----------

These functions convert the Paradox-specific integers into 
!!! litte-endian !!!-intergers.

SHORTINT -> short
LONGINT  -> long
DOUBLE   -> double
	unsigned long   PXtoLong(long number, int type);
	double  PXtoDouble(long long number, int type);

TIMESTAMP -> struct tm
DATE -> struct tm
TIME -> struct tm
	int     PXtoTM (long number, struct tm **tm, int type);

ALPHA -> quoted-VARCHAR
int     PXtoQuotedString(char *dst, const unsigned char *src, int type);

replaces ' ' by '_' (used for table-names)
char *  PXNametoQuotedName(char *str);


Example:
--------

look in pxinfo.c.
