Parsing Text – FParse()

/*
FParse()
Parses a delimited text file and loads it into an array.
Syntax :
FParse( <cFileName>, <cDelimiter> ) --> aTextArray
Arguments :
<cFileName> : This is a character string holding the name of the text file to load 
 into an array. It must include path and file extension. 
 If the path is omitted from <cFileName>, 
 the file is searched in the current directory. 

 <cDelimiter> : This is a single character used to parse a single line of text. 
 It defaults to the comma.
Return :
The function returns a two dimensional array, or an empty array when the file 
cannot be opened. 

Description :

 Function FParse() reads a delimited text file and parses each line 
 of the file at <cDelimiter>. The result of line parsing is stored in an array.
This array, again, is collected in the returned array, 
 making it a two dimensional array
FParse() is mainly designed to read the comma-separated values (or CSV) file format, 
 were fields are separated with commas and records with new-line character(s). 

Library is : xHb 

*/
#define CRLF HB_OsNewLine()
PROCEDURE Main()
LOCAL cTextFName := "Shakespeare.txt",;
      a1Line 

 SET COLO TO "W/B"
 SetMode( 40, 120 )

 CLS

 HB_MEMOWRIT( cTextFName,;
              "When in eternal lines to time thou grow'st," + CRLF + ;
              "So long as men can breathe, or eyes can see," + CRLF + ;
              "So long lives this, and this gives life to thee." )

 aLines := FParse( cTextFName, " " )

 ?
 ? "Text file word by word :"
 ?
 FOR EACH a1Line IN aLines
    AEVAL( a1Line, { | c1Word | QOUT( c1Word ) } )
 NEXT 
 ?
 @ MAXROW(), 0
 WAIT "EOF TP_FParse.prg" 

RETURN // TP_FParse.Main()

TP_FParse

Remove a line from a text file

Remove first or last line in a text file.

Usage : Rem1Line( <cInFName>, <nLocat> )

Where :

<cInFName> : Name of tex file to proceed.
<nLocat> : Location; 1: First line 2: Last line

Resulting is a separate file.

Warning : first / last line may be empty.

You may call Rem1Line() function anywhere your programs.

For write output file to over source file :

– discard

IF "." $ cInFName
    cOutFNam := LEFT( cInFName, AT( ".", cInFName ) - 1 ) +; 
                     HB_NTOS( nLocat ) +; 
                     SUBSTR( cInFName, AT( ".", cInFName ) )
ELSE 
    cOutFNam := cInFName + HB_NTOS( nLocat )
ENDIF

IF block and add : cOutFNam := cInFName

or simply change:

HB_MEMOWRIT( cOutFNam, cText )

line to

HB_MEMOWRIT( cInFName , cText )

August 2012
Download source file.

File Terms

Binary File :

A file that contains an unformatted sequence of bytes. Carriage return, linefeed, or end of file characters have no special meaning in a binary file. Binary files include executable files, graphics files, or data files.

See Also: Text File

Delimited File :

A text file that contains variable-length database records with each record separated by a carriage return/linefeed pair ( CHR(13) + CHR(10) ) and terminated with an end of file mark ( CHR(26) ). Each field within a delimited file is variable length, not padded with either leading or trailing spaces, and separated by a comma. Character strings are optionally delimited to allow for embedded commas.

See Also: Database, SDF File, Text File

Directory :

The major operating system facility for cataloging files. A directory contains a list of files and references to child directories (subdirectories), and is identified by name. Directories can be nested forming a hierarchical tree structure. The operating system provides a number of facilities that allow users to create and delete directories.

See Also: Disk, File, Path, Volume

Drive :

A disk drive or a letter (normally followed by a colon) that designates a disk drive. On most computers, the letters A and B refer to floppy disk drives; other letters refer to fixed disk drives or logical drives (e.g., fixed disk partitions or network drives).

Extension :

A filename extension normally used for identifying the type or originating program of a file.

See Also: Drive, Filename, Path

File :

A file is an organized collection of bytes stored on disk, maintained by the operating system, and referenced by name. Its internal structure is solely determined by its creator.

See Also : Binary File, Database, Text File

File Handle :

An integer numeric value returned from FOPEN() or FCREATE() when a file is opened or created. This value is used to identify the file for other operations until it is closed.

Filename :

The name of a disk file that may optionally include a drive designator, path, and extension.

See Also: Drive, Extension, Path

Path :

A literal string that specifies the location of a disk directory in the tree structured directory system. A path specification consists of the following elements: an optional disk drive letter followed by a colon, an optional backslash indicating that the path starts at the root directory of the specified drive, the names of all the directories from the root directory to the target directory, separated by backslash () characters. Example: C:CLIPPERINCLUDE. A path list is a series of path specifications separated by semicolons.

SDF File :

A text file that contains fixed-length database records with each record separated by a carriage return/linefeed pair (CHR(13) + CHR(10)) and terminated with an end of file mark (CHR(26)). Each field within an SDF file is fixed-length with character strings padded with trailing spaces and numeric values padded with leading spaces. There are no field separators.

Separator :

The character or set of characters that differentiate fields or records from one another. In Clipper language, the DELIMITED and SDF file types have separators. The DELIMITED file uses a comma as the field separator and a carriage return/linefeed pair as the record separator. The SDF file type has no field separator, but also uses a carriage return/linefeed pair as the record separator.

See Also: Delimiter

Subdirectory :

See : Directory

Text File :

A file consisting entirely of ASCII characters. Each line is separated by a carriage return/linefeed pair (CHR(13) + CHR(10)) and the file is terminated with a end of file mark (CHR(26)).

See Also: Delimited File, Program File, SDF File

Volume :

A unit of disk storage uniquely identified by a label and of fixed size. A hard disk can be partitioned into one or more volumes by an operation system utility. Volumes are subdivided into one or more directories organized in tree structure.

See Also: Directory, Disk