The Tcl file i/o library module has the file name fio.tcl. This module performs file input/output operations. File i/o is channel/stream oriented.
Here is a list of functions in the file i/o library module:
The following modules are required along with this module:
This module requires the definition file:
Declaration : proc unique {dir fname}
Parameters :
Name : dir
Type : path string
Description : directory path
Name : fname
Type : file name string
Description : returned output file name
Returns : 1 upon success, 0 otherwise
This procedure will create a unique file name in the specified directory path. Note that the output file is not actually created. The returned output file name is created minus the directory path. Do not end the directory path with a path separator. The directory path may be an empty string (which will indicate the current directory).
The unique file name created will be in the form:
11111111.tmp
Where 11111111 is a sequential number between one and 99,999,999
Declaration : proc exist {fname}
Parameters :
Name : fname
Type : string
Description : input file name
Returns : 1 if the file exists, 0 otherwise
This procedure will test for existence of a file.
Declaration : proc numrecs {fi}
Parameters :
Name : fi
Type : number
Description : input file channel
Returns : number of records/lines in the file, zero otherwise
This procedure will determine the number of lines/records in an ASCII file. Each line is assumed to be delimited by the appropriate line delimiter. The input file channel may be positioned to any part in the file as a seek to the beginning of the file is made prior to counting.
Declaration : proc get_nrec {recno fi}
Parameters :
Name : recno
Type : number
Description : record/line number
Name : fi
Type : channel number
Description : input file channel
Returns : record contents upon success, empty string otherwise
Read and get a specific record/line number from the input file channel. The input file channel may be positioned to any part in the file as a seek call (to the beginning of the file) is made prior to counting.
Declaration : proc get_rec {fi}
Parameters :
Name : fi
Type : channel number
Description : input file channel
Returns : record contents upon success, empty string otherwise
Read and return the next record/line from the input file channel. The line delimiter is stripped from the line.
Declaration : proc zcreate {fname}
Parameters :
Name : fname
Type : file path/name string
Description : input file name
Returns : 1 upon success, 0 otherwise
This procedure will create a zero byte file. If the file does not exist, it will be created. It is an error if the file already exists.
Declaration : proc isdirectory {path}
Parameters :
Name : path
Type : path string
Description : directory path
Returns : 1 if a directory, 0 otherwise
This procedure will determine whether the given directory path is actually a directory.
Declaration : proc filecopy {src dest}
Parameters :
Name : src
Type : path/file name string
Description : source path/name
Name : dest
Type : path/file name string
Description : destination path/name
Returns : 1 if the copy was successful, 0 otherwise
This procedure will copy a file from the source path/name to the destination path/name. If the destination path/name exists, it will be overwritten without warning.
Declaration : proc qrename {src dest}
Parameters :
Name : src
Type : path/file name string
Description : source path/name
Name : dest
Type : path/file name string
Description : destination path/name
Returns : 1 if the rename was successful, 0 otherwise
Rename a file. A file may be renamed anywhere: same directory, different directory on same drive, different directory on different drive.