/* * $Id$ */ /* * The following parts are Copyright of the individual authors. * www - http://www.harbour-project.org * * Copyright 2000 Chen Kedem * Documentation for: __TYPEFILE(), TYPE * * Copyright 2000 Luiz Rafael Culik * Documentation for: FOPEN(), FCLOSE(), FWRITE(), FSEEK(), FREAD(), FILE(), * FREADSTR(), FRENAME(), FERROR(), RENAME, ERASE, CURDIR(), * DIRMAKE(),DIRCHANGE(),ISDISK(),DIRREMOVE(),DISKCHANGE(), * DIRCHANGE() * * Copyright 2000 David G. Holm * Documentation for: HB_FEOF() * * See doc/license.txt for licensing terms. * */ /* $DOC$ * $FUNCNAME$ * FOPEN() * $CATEGORY$ * Low Level * $ONELINER$ * Open a file. * $SYNTAX$ * FOPEN( , [] ) --> nHandle * $ARGUMENTS$ * Name of file to open. * * Dos file open mode. * $RETURNS$ * A file handle. * $DESCRIPTION$ * This function opens a file expressed as and returns a * file handle to be used with other low-level file functions. The * value of represents the status of the file to be opened; * the default value is 0. The file open modes are as follows: * * nMode fileio.ch Meaning * * 0 FO_READ Read only * 1 FO_WRITE Write only * 2 FO_READWRITE Read/write * 16 FO_EXCLUSIVE Exclusive read only * 32 FO_DENYWRITE Prevent others from writing * 48 FO_DENYREAD Deny read only * 64 FO_DENYNONE Not deny, Let to others Read / Write * 64 FO_SHARED same as FO_DENYNONE *
* If there is an error in opening a file, a -1 will be returned by * the function. Files handles may be in the range of 0 to 65535. The * status of the SET DEFAULT TO and SET PATH TO commands has no effect * on this function. Directory names and paths must be specified along * with the file that is to be opened. * * If an error has occured, see the returns values from FERROR() for * possible reasons for the error. * $EXAMPLES$ * * IF (nH:=FOPEN('X.TXT',66) < 0 * ? 'File can't be opened' * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Clipper compliant * $FILES$ * Library is rtl * Header is fileio.ch * $SEEALSO$ * FCREATE(),FERROR(),FCLOSE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FCREATE() * $CATEGORY$ * Low Level * $ONELINER$ * Creates a file. * $SYNTAX$ * FCREATE( , [] ) --> nHandle * $ARGUMENTS$ * is the name of the file to create. * * Numeric code for the file attributes. * $RETURNS$ * Numeric file handle to be used in other operations. * $DESCRIPTION$ * This function creates a new file with a filename of . The * default value of is 0 and is used to set the * attribute byte for the file being created by this function. * The return value will be a file handle that is associated * with the new file. This number will be between zero to 65,535, * inclusive. If an error occurs, the return value of this function * will be -1. * * If the file already exists, the existing file will be * truncated to a file length of 0 bytes. * If specified, the following table shows the value for * and their related meaning to the file being created by * this function. * * * fileio.ch Meaning * * 0 FC_NORMAL Normal/Default,Read/Write * 1 FC_READONLY Read-only file attribute is set * 2 FC_HIDDEN Hidden,Excluded from normal DIR search * 4 FC_SYSTEM Create,Excluded from normal DIR search *
* $EXAMPLES$ * IF (nh:=FCREATE("TEST.TXT") <0 * ? "Cannot create file" * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Clipper compliant. * $FILES$ * Library is rtl * Header is fileio.ch * $SEEALSO$ * FCLOSE(),FOPEN(),FWRITE(),FREAD(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * FREAD() * $CATEGORY$ * Low Level * $ONELINER$ * Reads a specified number of bytes from a file. * $SYNTAX$ * FREAD( , @, ) --> nBytes * $ARGUMENTS$ * Dos file handle * Character expression passed by reference. * Number of bytes to read. * $RETURNS$ * the number of bytes successfully read from the file. * * $DESCRIPTION$ * This function reads the characters from a file whose file handle * is into a character memory variable expressed as . * The function returns the number of bytes successfully read into * . * The value of is obtained from either a call to the FOPEN() * or the FCREATE() function. * The expression is passed by reference and must be defined * before this function is called. It also must be at least the same * length as . * is the number of bytes to read, starting at the current * file pointer position. If this function is successful in reading * the characters from the file, the length of or the number * of bytes specified in will be the value returned. The current * file pointer advances the number of bytes read with each successive * read. The return value is the number of bytes successfully read * from the file. If a 0 is returned, or if the number of * bytes read matches neither the length of nor the specified * value in an end-of-file condition has been reached. * $EXAMPLES$ * cBuffer:=SPACE(500) * IF (nH:=FOPEN('X.TXT))>0 * FREAD(nH,@cBuffer,500) * ? cbuffer * ENDIF * FCLOSE(nH) * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Clipper compliant, but also extends the possible * buffer size to strings greater than 65K (depending on platform). * $FILES$ * Library is rtl * $SEEALSO$ * BIN2I(),BIN2L(),BIN2W(),FERROR(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FWRITE() * $CATEGORY$ * Low Level * $ONELINER$ * Writes characters to a file. * $SYNTAX$ * FWRITE( , , [] ) --> nBytesWritten * $ARGUMENTS$ * DOS file handle number. * Character expression to be written. * The number of bytes to write. * $RETURNS$ * the number of bytes successfully written. * $DESCRIPTION$ * This function writes the contents of to the file designated * by its file handle . If used, is the number of * bytes in to write. * The returned value is the number of bytes successfully written to the * DOS file. If the returned value is 0, an error has occurred (unless * this is intended). A successful write occurs when the number returned * by FWRITE() is equal to either LEN( ) or . * The value of is the string or variable to be written to the * open DOS file . * The value of is the number of bytes to write out to the file. * The disk write begins with the current file position in . If * this variable is not used, the entire contents of is written * to the file. * To truncate a file. a call of FWRITE( nHandle, "", 0 ) is needed. * $EXAMPLES$ * nHandle:=FCREATE('x.txt') * FOR X:=1 to 10 * FWRITE(nHandle,STR(x)) * NEXT * FCLOSE(nHandle) * $STATUS$ * R * $COMPLIANCE$ * This function is not CA-Clipper compatile since * it can writes strings greather the 64K * $FILES$ * Library is rtl * $SEEALSO$ * FCLOSE(),FCREATE(),FERROR(),FOPEN(),I2BIN(),L2BIN() * $END$ */ /* $DOC$ * $FUNCNAME$ * FERROR() * $CATEGORY$ * Low Level * $ONELINER$ * Reports the error status of low-level file functions * $SYNTAX$ * FERROR() --> * $RETURNS$ * Value of the DOS error last encountered by a * low-level file function. * * FERROR() Return Values * * * Error Meaning * * 0 Successful * 2 File not found * 3 Path not found * 4 Too many files open * 5 Access denied * 6 Invalid handle * 8 Insufficient memory * 15 Invalid drive specified * 19 Attempted to write to a write-protected disk * 21 Drive not ready * 23 Data CRC error * 29 Write fault * 30 Read fault * 32 Sharing violation * 33 Lock Violation *
* $DESCRIPTION$ * After every low-level file function,this function will return * a value that provides additional informationon the status of * the last low-level file functions's performance.If the FERROR() * function returns a 0, no error was detected.Below is a table * of possibles values returned by the FERROR() function. * $EXAMPLES$ * #include "Fileio.ch" * // * nHandle := FCREATE("Temp.txt", FC_NORMAL) * IF FERROR() != 0 * ? "Cannot create file, DOS error ", FERROR() * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Clipper compatible * $FILES$ * Library is rtl * $SEEALSO$ * FCLOSE(),FERASE(),FOPEN(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FCLOSE() * $CATEGORY$ * Low Level * $ONELINER$ * Closes an open file * $SYNTAX$ * FCLOSE( ) --> * $ARGUMENTS$ * DOS file handle * $RETURNS$ * Logical TRUE (.T.) or FALSE (.F.) * $DESCRIPTION$ * This function closes an open file with a dos file handle * of and writes the associated DOS buffer to the * disk. The value is derived from the FCREATE() * or FOPEN() function. * $EXAMPLES$ * nHandle:=FOPEN('x.txt') * ? FSEEK(nHandle, 0, 2) * FCLOSE(nHandle) * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Clipper compliant * $FILES$ * Library is rtl * $SEEALSO$ * FOPEN(),FCREATE(),FREAD(),FWRITE(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * FERASE() * $CATEGORY$ * Low Level * $ONELINER$ * Erase a file from disk * $SYNTAX$ * FERASE( ) --> nSuccess * $ARGUMENTS$ * Name of file to erase. * $RETURNS$ * 0 if successful, -1 if not * $DESCRIPTION$ * This function deletes the file specified in from the disk. * No extensions are assumed. The drive and path my be included in * ; neither the SET DEFAULT not the SET PATH command controls * the performance of this function.If the drive or path is not used, * the function will look for the file only on the currently selected * direcytory on the logged drive. * * If the function is able to successfully delete the file from the * disk, the value of the function will be 0; otherwise a -1 will * be returned.If not successfu, aditional information may be * obtained by calling the FERROR() function. * * Note: Any file to be removed by FERASE() must still be closed. * * $EXAMPLES$ * IF (FERASE("TEST.TXT")==0) * ? "File successfully erased" * ELSE * ? "File can not be deleted" * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Clipper Compatible * $FILES$ * Library is rtl * $SEEALSO$ * FERROR(),FRENAME() * $END$ */ /* $DOC$ * $FUNCNAME$ * FRENAME() * $CATEGORY$ * File management * $ONELINER$ * Renames a file * $SYNTAX$ * FRENAME( , ) --> nSuccess * $ARGUMENTS$ * Old filenarne to he changed * New filename * $RETURNS$ * If sucessful, a 0 will he returned otherwise, * a -1 will be returned. * $DESCRIPTION$ * This function renames the specified file to . * A filename and/or directory name may be specified for either para- * meter. However, if a path is supplied as part of and * this path is different from either the path specified in * or (if none is used) the current drive and directory, the function * will not execute successfully. * Neither parameter is subject to the control of the SET PATH TO or * SET DEFAULT TO commands. In attempting to locate the file to be * renamed, this function will search the default drive and directory * or the drive and path specified in . It will not search * directories named by the SET PATH TO and SET DEFAULT TO commands * or by the DOS PATH statement. * If the file specified in exists or the file is open, * the function will be unable to rename the file.If the function * is unable to complete its operation,it will return a value of -1. * If it is able to rename the file, the return value for the function * will be 0.A call to FERROR() function will give additional infor- * mation about any error found. * $EXAMPLES$ * nResult:=FRENAME("x.txt","x1.txt") * IF nResult <0 * ? "File could not be renamed." * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Clipper compliant * $FILES$ * Library is rtl * $SEEALSO$ * ERASE,FERASE(),FERROR(),FILE(),RENAME * $END$ */ /* $DOC$ * $FUNCNAME$ * FSEEK() * $CATEGORY$ * Low Level * $ONELINER$ * Positions the file pointer in a file. * $SYNTAX$ * FSEEK( , , [] ) --> nPosition * $ARGUMENTS$ * DOS file handle. * The number of bytes to move. * The relative position in the file. * $RETURNS$ * the current position relative to begin-of-file * $DESCRIPTION$ * This function sets the file pointer in the file whose DOS file * handle is and moves the file pointer by bytes * from the file position designated by . The returned value * is the relative position of the file pointer to the beginning-of-file * marker once the operation has been completed. * is the file handle number. It is obtained from the FOPEN() * or FCREATE() function. * The value of is the number of bytes to move the file pointer * from the position determined by .The value of may * be a negative number, suggesting backward movement. * The value of designates the starting point from which the * file pointer should he moved, as shown in the following table: * * fileio.ch File position * * 0 FS_SET Beginning of file * 1 FS_RELATIVE Current file pointer position * 2 FS_END End of file *
* If a value is not provided for , it defaults to 0 and * moves the file pointer from the beginning of the file. * $EXAMPLES$ * // here is a function that read one text line from an open file * * // nH = file handle obtained from FOPEN() * // cB = a string buffer passed-by-reference to hold the result * // nMaxLine = maximum number of bytes to read * * #define EOL HB_OSNEWLINE() * FUNCTION FREADln( nH, cB, nMaxLine ) * LOCAL cLine, nSavePos, nEol, nNumRead * cLine := space( nMaxLine ) * cB := '' * nSavePos := FSEEK( nH, 0, FS_RELATIVE ) * nNumRead := FREAD( nH, @cLine, nMaxLine ) * IF ( nEol := AT( EOL, substr( cLine, 1, nNumRead ) ) ) == 0 * cB := cLine * ELSE * cB := SUBSTR( cLine, 1, nEol - 1 ) * FSEEK( nH, nSavePos + nEol + 1, FS_SET ) * ENDIF * RETURN nNumRead != 0 * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Clipper compliant. * $FILES$ * Library is rtl * Header is fileio.ch * $SEEALSO$ * FCREATE(),FERROR(),FOPEN(),FREAD(),FREADSTR(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FILE() * $CATEGORY$ * File management * $ONELINER$ * Tests for the existence of file(s) * $SYNTAX$ * FILE( ) --> lExists * $ARGUMENTS$ * Dos Skeleton or file name to find. * $RETURNS$ * a logical true (.T.) if the file exists or logical * false (.F.). * $DESCRIPTION$ * This function return a logical true (.T.) if the given filename * exist. * Dos skeletons symbols may be used in the filename in , * as may the drive and/or path name. If a path is not explicity * specified, FILE() will look for the file in the SET DEFAULT path, * then in each SET PATH path, until the file is found or there are * no more paths to search. The DOS PATH is never searched and the * current drive/directory is only searched if SET DEFAULT is blank. * $EXAMPLES$ * ? file('c:\harbour\doc\compiler.txt") * ? file('c:/harbour/doc/subcodes.txt") * * $STATUS$ * S (wild card support is missing) * $COMPLIANCE$ * This function is CA-Clipper compatible. * $FILES$ * Library is rtl * $SEEALSO$ * SET DEFAULT,SET PATH,SET() * $END$ */ /* $DOC$ * $FUNCNAME$ * FREADSTR() * $CATEGORY$ * Low Level * $ONELINER$ * Reads a string from a file. * $SYNTAX$ * FREADSTR(, ) --> cString * $ARGUMENTS$ * DOS file handle number. * * Number of bytes to read. * $RETURNS$ * an characted expression * $DESCRIPTION$ * This function returns a character string of bytes from a * file whose DOS file handle is . * The value of the file handle is obtained from either the * FOPEN() or FCREATE() functions. * The value of is the number of bytes to read from the file. * The returned string will be the number of characters specified in * or the number of bytes read before an end-of-file charac- * ter (ASCII 26) is found. * NOTE This function is similar to the FREAD() function, except that * it will not read binary characters that may he required as part of * a header of a file construct. Characters Such as CHR(0) and CHR(26) * may keep this function from performing its intended operation. In this * event, the FREAD() function should he used in place of the FREADSTR() * function. * $EXAMPLES$ * IF ( nH := FOPEN("x.txt") ) > 0 * cStr := Freadstr(nH,100) * ? cStr * ENDIF * FCLOSE(nH) * * $STATUS$ * R * $COMPLIANCE$ * This function is not CA-Clipper compliant since may read * strings greather the 65K depending of platform. * $FILES$ * Library is rtl * $SEEALSO$ * BIN2I(),BIN2L(),BIN2W(),FERROR(),FREAD(),FSEEK() * $END$ */ /* HARBOUR COMMANDS */ /* $DOC$ * $FUNCNAME$ * RENAME * $CATEGORY$ * Command * $ONELINER$ * Changes the name of a specified file * $SYNTAX$ * RENAME TO * $ARGUMENTS$ * Old filename * New Filename * $DESCRIPTION$ * This command changes the name of to .Both * and must include a file extension.This command * if not affected by the SET PATH TO or SET DEFAULT TO commands;drive * and directoy designaters must be specified if either file is in a * directory other then the default drive and directory. * * If id currently open or if it previously exists, this * command will not perform the desired operation. * $EXAMPLES$ * RENAME c:\autoexec.bat to c:\autoexec.old * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Clipper compatible * $FILES$ * Library is rtl * $SEEALSO$ * CURDIR(),ERASE,FILE(),FERASE(),FRENAME() * $END$ */ /* $DOC$ * $FUNCNAME$ * ERASE * $CATEGORY$ * Command * $ONELINER$ * Remove a file from disk * $SYNTAX$ * ERASE * $ARGUMENTS$ * Name of file to remove * $DESCRIPTION$ * This command removes a file from the disk.The use of a drive,directo- * ry,and wild-card skeleton operator is allowed for the root of the * filename.The file extension is required.The SET DEFAULT and SET PATH * commands do not affect this command. * The file must be considered closed by the operating system before it * may be deleted. * $EXAMPLES$ * Erase c:\autoexec.bat * Erase c:/temp/read.txt * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Clipper compatible * $SEEALSO$ * CURDIR(),FILE(),FERASE(),DELETE FILE * $END$ */ /* $DOC$ * $FUNCNAME$ * DELETE FILE * $CATEGORY$ * Command * $ONELINER$ * Remove a file from disk * $SYNTAX$ * DELETE FILE * $ARGUMENTS$ * Name of file to remove * $DESCRIPTION$ * This command removes a file from the disk.The use of a drive,directo- * ry,and wild-card skeleton operator is allowed for the root of the * filename.The file extension is required.The SET DEFAULT and SET PATH * commands do not affect this command. * The file must be considered closed by the operating system before it * may be deleted. * $EXAMPLES$ * Erase c:\autoexec.bat * Erase c:/temp/read.txt * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Clipper compatible * $SEEALSO$ * CURDIR(),FILE(),FERASE(),ERASE * $END$ */ /* $DOC$ * $FUNCNAME$ * __TYPEFILE() * $CATEGORY$ * Data input and output * $ONELINER$ * Show the content of a file on the console and/or printer * $SYNTAX$ * __TYPEFILE( , [] ) --> NIL * $ARGUMENTS$ * is a name of the file to display. If the file have an * extension, it must be specified (there is no default value). * * is an optional logical value that specifies whether the * output should go only to the screen (.F.) or to both the screen and * printer (.T.), the default is (.F.). * $RETURNS$ * __TYPEFILE() always return NIL. * $DESCRIPTION$ * __TYPEFILE() function type the content of a text file on the screen * with an option to send this information also to the printer. The * file is displayed as is without any headings or formating. * * If contain no path, __TYPEFILE() try to find the file first * in the SET DEFAULT directory and then in search all of the SET PATH * directories. If can not be found a run-time error occur. * * Use SET CONSOLE OFF to suppress screen output. * You can pause the output using Ctrl-S, press any key to resume. * * __TYPEFILE() function is used in the preprocessing of the TYPE * command. * $EXAMPLES$ * The following examples assume a file name MyText.DAT exist in all * specified paths, a run-time error would displayed if it does not * * // display MyText.DAT file on screen * __TYPEFILE( "MyText.DAT" ) * * // display MyText.DAT file on screen and printer * __TYPEFILE( "MyText.DAT", .T. ) * * // display MyText.DAT file on printer only * SET CONSOLE OFF * __TYPEFILE( "MyText.DAT", .T. ) * SET CONSOLE ON * * $STATUS$ * R * $COMPLIANCE$ * __TYPEFILE() works exactly like CA-Clipper's __TYPEFILE() * $FILES$ * Library is rtl * $SEEALSO$ * COPY FILE,SET DEFAULT,SET PATH,SET PRINTER,TYPE * $END$ */ /* $DOC$ * $FUNCNAME$ * TYPE * $CATEGORY$ * Command * $ONELINER$ * Show the content of a file on the console, printer or file * $SYNTAX$ * TYPE [TO PRINTER] [TO FILE ] * $ARGUMENTS$ * is a name of the file to display. If the file have an * extension, it must be specified (there is no default value). * It can be specified as literal file name or as a character * expression enclosed in parentheses. * * TO PRINTER is an optional keyword that specifies that the output * should go to both the screen and printer. * * TO FILE copy the source also to a file. If no * extension is given (.txt) is added to the output file name. * can be specified as literal file name or as a character * expression enclosed in parentheses. * $DESCRIPTION$ * TYPE command type the content of a text file on the screen * with an option to send this information also to the printer or to * an alternate file. The file is displayed as is without any headings * or formating. * * If contain no path, TYPE try to find the file first in the * SET DEFAULT directory and then in search all of the SET PATH * directories. If can not be found a run-time error occur. * * If contain no path it is created in the SET DEFAULT * directory. * * Use SET CONSOLE OFF to suppress screen output. * You can pause the output using Ctrl-S, press any key to resume. * $EXAMPLES$ * The following examples assume a file name MyText.DAT exist in all * specified paths, a run-time error would displayed if it does not * * // display MyText.DAT file on screen * TYPE MyText.DAT * * // display MyText.DAT file on screen and printer * TYPE MyText.DAT TO PRINTER * * // display MyText.DAT file on printer only * SET CONSOLE OFF * TYPE MyText.DAT TO PRINTER * SET CONSOLE ON * * // display MyText.DAT file on screen and into a file MyReport.txt * TYPE MyText.DAT TO FILE MyReport * * $STATUS$ * R * $COMPLIANCE$ * TYPE works exactly like CA-Clipper's TYPE * $SEEALSO$ * COPY FILE,SET DEFAULT,SET PATH,SET PRINTER,__TYPEFILE() * $END$ */ /* $DOC$ * $FUNCNAME$ * CURDIR() * $CATEGORY$ * Low Level * $ONELINER$ * Returns the current OS directory name. * $SYNTAX$ * CURDIR( [] ) --> cPath * $ARGUMENTS$ * OS drive letter * $RETURNS$ * Name of directory * $DESCRIPTION$ * This function yields the name of the current OS directory on a * specified drive.If is not speficied,the currently logged * drive will be used. * This function should not return the leading and trailing * (back)slashes. * If an error has been detected by the function,or the current OS * directory is the root,the value of the function will be a NULL * byte. * $EXAMPLES$ * ? Curdir() * * $STATUS$ * R * $COMPLIANCE$ * This function is Ca-Clipper Compatible * $PLATFORMS$ * ALL * $FILES$ * Library is rtl * $SEEALSO$ * FILE() * $END$ */ /* $DOC$ * $FUNCNAME$ * COPY FILE * $CATEGORY$ * Command * $ONELINER$ * Copies a file. * $SYNTAX$ * COPY FILE TO * $ARGUMENTS$ * Filename of source file * Filename of target file * $DESCRIPTION$ * This command makes an exact copy of and names it . * Both files must have the file extension included; the drive and the * directory names must also be specified if they are different from * the default drive and/or director. also can refer to a OS * device (e.g. LPT1).This command does not obsert the SET PATH TO or * SET DEFAULT TO settings. * $EXAMPLES$ * COPY FILE C:\HARBOUR\TESTS\ADIRTEST.PRG to C:\TEMP\ADIRTEST.PRG * COPY FILE c:\harbour\utils\hbdoc\gennf.prg to LPT1 * $STATUS$ * R * $COMPLIANCE$ * This command is Ca-Clipper compliant * $SEEALSO$ * ERASE,RENAME,FRENAME(),FERASE() * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_FEOF() * $CATEGORY$ * Low Level * $ONELINER$ * Check for end-of-file. * $SYNTAX$ * HB_FEOF( ) --> lIsEof * $ARGUMENTS$ * The handle of an open file. * $RETURNS$ * .T. if the file handle is at end-of-file, otherwise .F. * $DESCRIPTION$ * This function checks an open file handle to see if it is at E-O-F. * If the file handle is missing, not numeric, or not open, then this * function returns .T. and sets the value returned by FERROR() to -1 * (FS_ERROR) or a C-compiler dependent errno value (EBADF or EINVAL). * $EXAMPLES$ * nH:=FOPEN('FILE.TXT') * ? FREADSTR(nH,80) * IF HB_FEOF(nH) * ? 'End-of-file reached.' * ELSE * ? FREADSTR(nH,80) * ENDIF * $STATUS$ * R * $COMPLIANCE$ * This function is a Harbour extension * $FILES$ * Library is rtl * $SEEALSO$ * FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * DIRREMOVE() * $CATEGORY$ * Low Level * $ONELINER$ * Attempt to remove an directory * $SYNTAX$ * DIRCHANGE( ) --> nError * $ARGUMENTS$ * The name of the directory you want to remove. * $RETURNS$ * 0 if directory was successfully removed, otherwise * the number of the last error. * $DESCRIPTION$ * This function attempt to remove the specified directory in * If this function fail, the it will return the last OS error code number. * See FERROR() function for the description of the error. * $EXAMPLES$ * cDir:= ".\Backup" * if (DIRREMOVE(cDir)==0) * ? "Remove of directory",cDir, "was successfull" * endif * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA Clipper 5.3 compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * MAKEDIR(),DIRCHANGE(),ISDISK(),DISKCHANGE(),DISKNAME(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * DIRCHANGE() * $CATEGORY$ * Low Level * $ONELINER$ * Changes the directory * $SYNTAX$ * DIRCHANGE( ) --> nError * $ARGUMENTS$ * The name of the directory you want do change into. * $RETURNS$ * 0 if directory was successfully changed, otherwise * the number of the last error. * $DESCRIPTION$ * This function attempt to change the current directory to the one * specidied in .If this function fail, the it will return * the last OS error code number.See FERROR() function for the * description of the error. * $EXAMPLES$ * if (DIRCHANGE("\temp")==0) * ? "Change to diretory was successfull" * endif * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA Clipper 5.3 compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * MAKEDIR(),DIRREMOVE(),ISDISK(),DISKCHANGE(),DISKNAME(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * MAKEDIR() * $CATEGORY$ * Low Level * $ONELINER$ * Create a new directory * $SYNTAX$ * MAKEDIR( ) --> nError * $ARGUMENTS$ * The name of the directory you want to create. * $RETURNS$ * 0 if directory was successfully created, otherwise * the number of the last error. * $DESCRIPTION$ * This function attempt to create a new directory with the name contained * in .If this function fail, the it will return the last OS * error code number.See FERROR() function for the description of the * error * $EXAMPLES$ * cDir:= "Temp" * If (MAKEDIR( cDir)==0) * ? "Directory ",cDir," successfully created * Endif * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA Clipper 5.3 compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * DIRCHANGE(),DIRREMOVE(),ISDISK(),DISKCHANGE(),DISKNAME(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * ISDISK() * $CATEGORY$ * Low Level * $ONELINER$ * Verify if a drive is ready * $SYNTAX$ * ISDISK( ) --> lSuccess * $ARGUMENTS$ * An valid Drive letter * $RETURNS$ * .T. is the drive is ready, otherwise .F. * $DESCRIPTION$ * This function attempts to access a drive. If the access to the drive * was successfull, it will return true (.T.), otherwise false(.F.).This * function is usefull for backup function, so you can determine if the * drive that will recieve the backup data is ready or not. * $EXAMPLES$ * IF ISDISK("A") * ? "Drive is ready " * Endif * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA Clipper 5.3 compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * DIRCHANGE(),MAKEDIR(),DIRREMOVE(),DISKCHANGE(),DISKNAME() * $END$ */