/* * $Id$ */ /* * Las siguientes partes son derechos adquiridos de sus autores individuales. * www - http://www.harbour-project.org * * Copyright 2000 Chen Kedem * Documentaci¢n en Ingl‚s de: __TYPEFILE(), TYPE * * Copyright 2000 Luiz Rafael Culik * Documentaci¢n en Ingl‚s de: * FOPEN(), FCLOSE(), FWRITE(), FSEEK(), FREAD(), FILE(), * FREADSTR(), FRENAME(), FERROR(), RENAME, ERASE, CURDIR(), * DIRMAKE(),DIRCHANGE(),ISDISK(),DIRREMOVE(),DISKCHANGE(), * DIRCHANGE() * * Copyright 2000 David G. Holm * Documentaci¢n en Ingl‚s de: HB_FEOF() * * Copyright 2003 Alejandro de G rate * Documentaci¢n en Espa¤ol de: * FOPEN(), FCREAT(), FREAD(), FWRITE(), FERROR(), FCLOSE(), * FERASE(), FRENAME(), FSEEK(), FILE(), FREADSTR(), RENAME, * ERASE, DELETE FILE, __TYPEFILE(), TYPE, CURDIR(), COPY FILE, * HB_FEOF(), DIRREMOVE(), DIRCHANGE(), MAKEDIR(), ISDISK(), * * Vea doc/license.txt por los t‚rminos de la licencia. * */ /* $DOC$ * $FUNCNAME$ * FOPEN() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Abre un archivo binario * $SYNTAX$ * FOPEN( , [] ) --> nHandle * $ARGUMENTS$ * Es el Nombre del archivo a abrir * * Modo de apertura del archivo * $RETURNS$ * Devuelve , el manejador (handle) del archivo. * $DESCRIPTION$ * Esta funci¢n abre el archivo binario indicado como y * devuelve un manejador de archivo para ser usado por otras funciones * de bajo nivel. * El valor de representa la forma de apertura del archivo, el * valor por defecto es 0 (cero). * Los modos de apertura son los siguientes: * * * nModo fileio.ch Significado * * 0 FO_READ Solo Lectura (Read only) * 1 FO_WRITE Solo Escritura (Write only) * 2 FO_READWRITE Leer/Escribir (Read/write) * 16 FO_EXCLUSIVE Uso exclusivo, Solo Lectura * 32 FO_DENYWRITE Evita escritura por otros * 48 FO_DENYREAD Evita Lectura por otros * 64 FO_DENYNONE No Evita nada, Otros pueden Leer/Escribir * 64 FO_SHARED igual que FO_DENYNONE *
* * Si existe un error en la apertura del archivo, la funci¢n devolver  * -1. El valor del manejador de archivo (handle) puede estar en el * rango de cero a 65535. * El estado de los comandos SET DEFAULT TO y SET PATH TO no tiene * efecto sobre esta funci¢n. * Los nombres de directorios y la trayectoria a trav‚s de ellos (path) * puede ser especificada junto con el nombre del archivo a ser abierto. * * Si ocurre un error, consulte el valor que devuelve la funci¢n * FERROR(), por las causas posibles del error. * $EXAMPLES$ * 1) Abre un archivo para lectura/escritura y en modo compartido * * nHandle := FOPEN('X.TXT', 66 ) * * IF nHandle < 0 * ? "El archivo no puede ser abierto" * ENDIF * * * 2) ¢ mejor a£n * cFile := "X.TXT" * nHandle := FOPEN( cFile, FO_SHARED + FO_READWRITE ) * * IF FERROR() != 0 * ? "El archivo <" + cFile + "> no puede ser abierto, error: ", ; * FERROR() * // Tomar la acci¢n apropiada... * ENDIF * * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $PLATFORMS$ * Todas * $FILES$ * La librer¡a asociada es rtl * El archivo de cabecera es fileio.ch * $SEEALSO$ * FCREATE(),FERROR(),FCLOSE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FCREATE() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Crea ¢ Trunca un archivo binario. * $SYNTAX$ * FCREATE( , [] ) --> nHandle * $ARGUMENTS$ * Es el Nombre del archivo a abrir * * C¢digo num‚rico con los atributos del archivo * $RETURNS$ * Devuelve el manejador num‚rico (handle) del archivo para * ser usado en otras operaciones. * $DESCRIPTION$ * Esta funci¢n crea un nuevo archivo binario con el nombre . * El valor por defecto de es cero y es usado para * establecer el byte de atributo del archivo creado por esta funci¢n. * El valor de retorno es un manejador de archivo (handle) que es * asociado con el nuevo archivo. Este n£mero estar  entre cero y 65535 * Si ocurre un error, el valor de retorno de esta funci¢n ser  de -1. * * Si el archivo ya existe, ese archivo ser  truncado a una * longitud de cero bytes. * * Si es especificado, la tabla siguiente muestra los * valores que puede tomar y su relaci¢n con el archivo que * est  siendo creado por esta funci¢n. * * * fileio.ch Significado * * 0 FC_NORMAL Normal/Por Defecto, Lectura/Escritura * 1 FC_READONLY Solo Lectura * 2 FC_HIDDEN Oculto, Excluido de la b£squeda normal DIR * 4 FC_SYSTEM Sistema, Excluido de la b£squeda normal DIR *
* $EXAMPLES$ * cFile := "TEST.TXT" * nHandle := FCREATE( cFile ) * * IF nHandle < 0 * ? "No se puede crear el archivo:", cFile * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $FILES$ * La librer¡a asociada es rtl * El archivo de cabecera es fileio.ch * $SEEALSO$ * FCLOSE(),FOPEN(),FWRITE(),FREAD(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * FREAD() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Lee un n£mero de bytes especificado desde un archivo binario * $SYNTAX$ * FREAD( , @, ) --> nBytesLeidos * $ARGUMENTS$ * Manejador de archivo del sistema operativo * * Cadena de caracteres usada como buffer temporal y * pasada por referencia (n¢tese el operador '@' delante * del nombre de la variable). * * N£mero de bytes a leer * $RETURNS$ * Devuelve , el n£mero de bytes satisfactoriamente * le¡dos desde el archivo. * $DESCRIPTION$ * Esta funci¢n lee caracteres desde un archivo cuyo manejador es * a una variable de memoria indicada como . * La funci¢n retorna el n£mero de bytes exitosamente le¡dos dentro de * . * * El valor de es obtenido de la llamada a la funci¢n FOPEN() * ¢ bien de la llamada a la funci¢n FCREATE(). * * La expresi¢n es pasada por referencia y debe ser definida * antes que esta funci¢n sea llamada. Esta tambi‚n debe tener el * mismo ¢ mayor tama¤o que , caso contrario se producir  un * error. * * es el n£mero de bytes a leer, comenzando en la posici¢n * actual del puntero del archivo. Si esta funci¢n tiene ‚xito en la * lectura de los caracteres del archivo, el n£mero real de caracteres * le¡dos ser  igual a la longitud de , igual al n£mero de * bytes especificado en y ese ser  el valor devuelto. * El puntero actual del archivo avanza tantas posiciones como el n£mero * de bytes le¡dos. * * Esta funci¢n lee todos los caracteres ASCII de 0-255, incluyendo el * car cter null / ASC(0) y los caracteres de control. * Si esta funci¢n devuelve cero, ¢ si el n£mero de bytes le¡dos no * coincide ni con la longitud de , ni con el valor * especificado en , es porque se ha alcanzado la condici¢n * end-of-file (EOF) ¢ fin de archivo. * * Si ocurre un error, consulte el valor que devuelve la funci¢n * FERROR(), por las causas posibles del error. * $EXAMPLES$ * nChunck := 500 * cBuffer := SPACE( nChunck ) * * IF (nHandle := FOPEN('X.TXT) ) > 0 * FREAD( nHandle, @cBuffer, nChunck ) * ENDIF * * FCLOSE( nHandle ) * * ? cBuffer * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper, pero tambi‚n extiende el * tama¤o del buffer a cadenas m s grandes que 64 Kb (dependiendo de la * plataforma). * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * BIN2I(),BIN2L(),BIN2W(),FERROR(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FWRITE() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Escribe caracteres hacia un archivo binario abierto. * $SYNTAX$ * FWRITE( , , [] ) --> nBytesEscritos * $ARGUMENTS$ * Manejador de archivo del sistema operativo * * Cadena de caracteres a escribirse * * El n£mero de bytes a escribir * $RETURNS$ * el n£mero de bytes satisfactoriamente escritos. * $DESCRIPTION$ * Esta funci¢n escribe el contenido de la memoria intermedia * a un archivo binario designado por su manejador de archivo . * * El valor devuelto por esta funci¢n es el n£mero de bytes exitosamente * escritos en el archivo. * Si el valor devuelto es cero, un error ha ocurrido, disco lleno, etc. * * Una escritura satisfactoria ocurre cuando el n£mero de bytes * retornados por FWRITE() es igual al LEN( ) ¢ . * * El valor de es el n£mero de bytes a escribir al archivo. * La escritura comienza en la posici¢n actual del puntero del archivo. * Si es especificado, este es el n£mero de bytes en * que van a ser escritos. Si esta variable no es usada, el contenido * completo del buffer es escrito al archivo. * Para truncar un archivo, una llamada a FWRITE( nHandle, "", 0 ) es * necesaria. * * Si ocurre un error, consulte el valor que devuelve la funci¢n * FERROR(), por las causas posibles del error. * $EXAMPLES$ * nHandle := FCREATE('x.txt') * * FOR x :=1 TO 10 * FWRITE( nHandle, STR(x) ) * NEXT * * FCLOSE( nHandle ) * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n no es compatible con CA-Clipper porque puede escribir * cadenas de caracteres mayores a 64 Kb. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * FCLOSE(),FCREATE(),FERROR(),FOPEN(),I2BIN(),L2BIN() * $END$ */ /* $DOC$ * $FUNCNAME$ * FERROR() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Reporta el estado de error de las funciones de archivo de bajo nivel * $SYNTAX$ * FERROR() --> * $RETURNS$ * Valor del £ltimo error del DOS encontrado por una * funci¢n de bajo nivel. * * Valores de Retorno de FERROR() * * * Error Significado * * 0 Exito, no hubo error * 2 Archivo no encontrado * 3 Camino (Path) no encontrado * 4 Demasiados archivos abiertos * 5 Acceso denegado * 6 Manejador (handle) no v lido * 8 Memoria insuficiente * 15 Drive especificado no v lido * 19 Intento de escritura en un disco protegido * 21 Drive no listo * 23 Error en CRC de datos * 29 Error de escritura * 30 Error de lectura * 32 Sharing violation * 33 Violaci¢n de bloqueo *
* $DESCRIPTION$ * Despu‚s de ejecutar una funci¢n de manipulaci¢n de archivos de bajo * nivel , esta funci¢n retornar  un valor que provee informaci¢n * adicional sobre su funcionamiento. * Si la funci¢n FERROR() devuelve cero, no se ha detectado ning£n * error. Esta funci¢n mantiene su valor hasta la pr¢xima ejecuci¢n de * una funci¢n de archivo de bajo nivel. * M s arriba hay un tabla con algunos valores devueltos por la funci¢n * FERROR(). * Note que esos valores podr¡an ser distintos en otra plataforma * (sistema operativo) distinta a DOS/Windows. * $EXAMPLES$ * #include "Fileio.ch" * // * nHandle := FCREATE("Temp.txt", FC_NORMAL) * * IF FERROR() != 0 * ? "No se puede crear el archivo, DOS error ", FERROR() * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * FCLOSE(),FERASE(),FOPEN(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FCLOSE() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Cierra un archivo binario abierto * $SYNTAX$ * FCLOSE( ) --> * $ARGUMENTS$ * Manejador de archivo del sistema operativo * $RETURNS$ * Devuelve un valor l¢gico, es TRUE (.T.) si se cerr¢ con * ‚xito ¢ FALSE (.F.) si no se pudo cerrar. * $DESCRIPTION$ * Esta funci¢n cierra un archivo abierto identificado con el manejador * de DOS y escribe el contenido del buffer DOS asociado hacia * el disco. * El valor es obtenido del llamado a alguna de las * funciones FCREATE() ¢ FOPEN(). * * Si ocurre un error, consulte el valor que devuelve la funci¢n * FERROR(), por las causas posibles del error. * $EXAMPLES$ * nHandle := FOPEN('x.txt') * * ? FSEEK( nHandle, 0, 2) * * FCLOSE( nHandle ) * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * FOPEN(),FCREATE(),FREAD(),FWRITE(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * FERASE() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Borra un archivo del disco * $SYNTAX$ * FERASE( ) --> nExito * $ARGUMENTS$ * Nombre del archivo a borrar * $RETURNS$ * Devuelve cero si hubo ‚xito, -1 en caso contrario. * $DESCRIPTION$ * Esta funci¢n borra el archivo especificado en del disco. * Ninguna extensi¢n es asumida. El disco y el camino (path) pueden ser * incluidos en ; * Ninguno de los comandos SET DEFAULT ni SET PATH afectan la ejecuci¢n * de esta funci¢n. * Si el disco ¢ el camino no son usados, esta funci¢n buscar  el * archivo solamente en el directorio actual del disco al cual se * encuentra loggeado. * * Si la funci¢n es capaz de borrar satisfactoriamente el archivo del * disco, el valor devuelto por la funci¢n ser  cero ¢ -1 si hubo alguna * falla. Si no fue exitosa la operaci¢n, informaci¢n adicional puede * ser obtenida llamando a la funci¢n FERROR(). * * Nota: Cualquier archivo a ser removido por FERASE() debe estar * previamente cerrado. * $EXAMPLES$ * IF (FERASE("TEST.TXT") ==0) * ? "El archivo fu‚ exitosamente borrado" * ELSE * ? "El archivo no puede ser borrado" * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * FERROR(),FRENAME() * $END$ */ /* $DOC$ * $FUNCNAME$ * FRENAME() * $CATEGORY$ * File management * $ONELINER$ * Renombra un archivo * $SYNTAX$ * FRENAME( , ) --> nExito * $ARGUMENTS$ * Nombre del archivo a ser cambiado * * Nuevo nombre que tomar  el archivo * $RETURNS$ * Devuelve cero si hubo ‚xito, -1 en caso contrario. * $DESCRIPTION$ * Esta funci¢n renombra el archivo especificado en * al nuevo nombre: . * El nombre del archivo junto con el del directorio puede ser * especificado para cualquier par metro. * Sin embargo, si el camino es aportado como parte de * y este camino es diferente del camino especificado en * ¢ (si ninguno es usado) el disco y directorio actuales, la funci¢n * podr¡a no ejecutarse satisfactoriamente. * * Ninguno de los comandos SET DEFAULT ni SET PATH afectan la ejecuci¢n * de esta funci¢n. * Al intentar localizar el archivo a ser renombrado, esta funci¢n * buscar  en el disco y el directorio por defecto, ¢ en el disco y * directorio especificado en . * No buscar  en los directorios mencionados en los comandos SET PATH TO * SET DEFAULT TO ¢ por la sentencia PATH del sistema operativo. * * Si el archivo especificado en existe ¢ el archivo * est  abierto, la funci¢n ser  incapaz de renombrar el archivo. * Si la funci¢n es incapaz de completar su operaci¢n, esta devolver  * el valor -1, y cero si la operaci¢n fue exitosa. * Si ocurre un error, consulte el valor que devuelve la funci¢n * FERROR(), por las causas posibles del error. * $EXAMPLES$ * nResult := FRENAME("x.txt", "x1.txt") * * IF nResult < 0 * ? "El archivo no pudo ser renombrado." * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * ERASE,FERASE(),FERROR(),FILE(),RENAME * $END$ */ /* $DOC$ * $FUNCNAME$ * FSEEK() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Mueve el puntero de un archivo binario * $SYNTAX$ * FSEEK( , , [] ) --> nPosicion * $ARGUMENTS$ * Manejador de archivo del sistema operativo * El valor es obtenido del llamado a alguna de * las funciones FCREATE() ¢ FOPEN(). * * N£mero de bytes a mover el puntero del archivo * * Posici¢n inicial del puntero del archivo * $RETURNS$ * Devuelve la posici¢n actual del puntero del archivo con * respecto al comienzo del archivo. * $DESCRIPTION$ * Esta funci¢n mueve el puntero del archivo, cuyo manejador DOS es * tantos bytes hacia delante ¢ atras seg£n el contenido de * , desde la posici¢n establecida por . * * El valor num‚rico retornado por la funci¢n es la posici¢n relativa * del puntero del archivo al marcador de inicio de archivo una vez que * la operaci¢n ha sido completada. * Esta funci¢n no realiza ninguna lectura, simplemente mueve el puntero * del archivo. * * Si el valor de es positivo el puntero se mover  hacia * delante, si el valor es negativo se mover  hacia atr s, desde la * posici¢n establecida por . * * El valor de establece el punto de inicio desde el cual el * puntero del archivo va a ser movido, como se muestra en la tabla * siguiente: * * * fileio.ch Posici¢n en el archivo * * 0 FS_SET Comienzo del archivo * 1 FS_RELATIVE Actual posici¢n del puntero del archivo * 2 FS_END Fin del archivo (EOF) *
* * Si un valor no es provisto para , por defecto es cero y * el puntero del archivo se mueve desde el comienzo del archivo. * El puntero del archivo no puede desplazarse m s alla de los l¡mites * de inicio ¢ de fin de archivo, caso contrario ocurrir  un error. * Si ocurre un error, consulte el valor que devuelve la funci¢n * FERROR(), por las causas posibles del error. * $EXAMPLES$ * // Funci¢n que lee una l¡nea de texto desde un archivo abierto * * // nHandle = manejador de archivo obtenido de FOPEN() * // cB = cadena buffer pasada-por-referencia para poner el resultado * // nMaxLine = n£mero maximo de bytes a leer * * #define EOL HB_OSNEWLINE() * * FUNCTION FREADln( nHandle, cB, nMaxLine ) * * LOCAL cLine, nSavePos, nEol, nNumRead * * cLine := SPACE( nMaxLine ) * cB := '' * nSavePos := FSEEK( nHandle, 0, FS_RELATIVE ) * nNumRead := FREAD( nHandle, @cLine, nMaxLine ) * * IF ( nEol := AT( EOL, substr( cLine, 1, nNumRead ) ) ) == 0 * cB := cLine * ELSE * cB := SUBSTR( cLine, 1, nEol - 1 ) * FSEEK( nHandle, nSavePos + nEol + 1, FS_SET ) * ENDIF * * RETURN nNumRead != 0 * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $FILES$ * La librer¡a asociada es rtl * El archivo de cabecera es fileio.ch * $SEEALSO$ * FCREATE(),FERROR(),FOPEN(),FREAD(),FREADSTR(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FILE() * $CATEGORY$ * File management * $ONELINER$ * Verifica la existencia de archivos * $SYNTAX$ * FILE( ) --> lExiste * $ARGUMENTS$ * Especificaci¢n del archivo, esta puede contener una * referencia a la unidad de disco y el directorio. * La extensi¢n debe ser especificada. * Sigue las reglas b sicas de archivos de DOS. * $RETURNS$ * Retorna un valor l¢gico verdadero (.T.) si el archivo * existe, ¢ falso (.F.) si no es encontrado. * $DESCRIPTION$ * Esta funci¢n busca el archivo como es especificado en * * Si el camino no es especificado, FILE() buscar  primero en la * ubicaci¢n indicada por SET DEFAULT, si no lo encuentra seguir  luego * con la/s ubicaci¢n/es contenidas en SET PATH, hasta que el archivo * sea encontrado ¢ hasta que no haya m s caminos para buscar. * * El PATH del DOS nunca es examinado y el actual disco y directorio * es s¢lo examinado si SET DEFAULT est  en blanco. * * Nota: La utilizaci¢n de caracteres comodines '*' y '?' todav¡a no * est  soportada comletamente. * $EXAMPLES$ * ? FILE( "c:\harbour\doc\compiler.txt") * ? FILE( "c:\harbour\doc\subcodes.txt") * * $STATUS$ * S (el soporte de comodines todav¡a est  ausente) * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * SET DEFAULT,SET PATH,SET() * $END$ */ /* $DOC$ * $FUNCNAME$ * FREADSTR() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Lee una cadena de caracteres desde un archivo binario * $SYNTAX$ * FREADSTR( , ) --> cCadena * $ARGUMENTS$ * Manejador de archivo del sistema operativo * El valor es obtenido del llamado a alguna de * las funciones FCREATE() ¢ FOPEN(). * * N£mero de bytes a leer * $RETURNS$ * Devuelve la cadena de caracteres . * $DESCRIPTION$ * Esta es una funci¢n de bajo nivel que lee caracteres de un archivo * binario. * El valor de es el n£mero de bytes a leer desde el archivo. * * La cadena devuelta ser  el n£mero de caracteres especificado en * si no hubo error y el archivo todav¡a conten¡a esa cantidad * de caracteres. * Si se encuentra los caracteres ASCII=cero ¢ ASCII=26 el tama¤o de la * cadena devuelta ser  menor que e inclusive puede ser nula. * * NOTA: * Esta funci¢n es similar a la funci¢n FREAD(), excepto que detiene la * lectura si encuentra los caracteres CHR(0) (fin de cadena) ¢ CHR(26) * (fin de archivo). * Tenga esto en cuenta si no logra el resultado deseado al leer un * archivo binario, en tal caso la funci¢n FREAD() deber¡a ser usada en * lugar de la funci¢n FREADSTR(). * $EXAMPLES$ * - Este ejemplo lee y muestra los primeros 100 caracteres de un * archivo de texto * * IF ( nHandle := FOPEN("x.txt") ) > 0 * cStr := FREADSTR( nHandle, 100) * ? cStr * ENDIF * * FCLOSE( nHandle ) * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n no es compatible CA-Clipper dado que la versi¢n de * Harbour, puede leer cadenas mayores que 64 Kb, dependiendo de la * plataforma. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * BIN2I(),BIN2L(),BIN2W(),FERROR(),FREAD(),FSEEK() * $END$ */ /* HARBOUR COMMANDS */ /* $DOC$ * $FUNCNAME$ * RENAME * $CATEGORY$ * Comando * $ONELINER$ * Cambia el nombre del archivo especificado * $SYNTAX$ * RENAME TO * $ARGUMENTS$ * Nombre del archivo a ser cambiado * * Nuevo nombre que tomar  el archivo * $DESCRIPTION$ * Este comando cambia el nombre de a . * Ambos archivos y deben incluir la * extensi¢n del archivo y pueden opcionalmente incluir la unidad de * disco y el camino, aunque deben especificarse si cualquier archivo * est  en otro directorio distinto al disco y directorio por defecto. * El nombre de cualquiera de los dos archivos puede ser especificado * como una cadena literal, ¢ como una expresi¢n de caracteres * encerrada entre par‚ntesis. * Este comando no es afectado ni por el comando SET PATH TO, ni por el * comando SET DEFAULT TO. * * Si existe previamente ¢ si est  actualmente abierto * este comando no realizar  la operaci¢n deseada. * Si ocurre un error, consulte el valor que devuelve la funci¢n * FERROR(), por las causas posibles del error. * $EXAMPLES$ * RENAME c:\autoexec.bat TO c:\autoexec.old * * $STATUS$ * R * $COMPLIANCE$ * Este comando es compatible con CA-Clipper. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * CURDIR(),ERASE,FILE(),FERASE(),FRENAME() * $END$ */ /* $DOC$ * $FUNCNAME$ * ERASE * $CATEGORY$ * Comando * $ONELINER$ * Remueve un archivo del disco * $SYNTAX$ * ERASE * $ARGUMENTS$ * Nombre del archivo a remover * $DESCRIPTION$ * Este comando borra ¢ remueve un archivo del disco. * El nombre de puede especificarse como una cadena literal, * ¢ como una expresi¢n de caracteres. Debe incluir la extensi¢n del * archivo y puede opcionalmente incluir la unidad de disco y el camino. * * El uso de los caracteres comodines '*' y '?' esta permitido. * * Los comandos SET DEFAULT y SET PATH no afectan la operatoria de este * comando. * El archivo debe ser considerado cerrado por el sistema operativo, * antes de que ‚ste pueda ser borrado. * $EXAMPLES$ * ERASE c:\autoexec.bat // s¢lo es una broma, no lo intente! * ERASE c:/temp/read.txt * * $STATUS$ * R * $COMPLIANCE$ * Este comando es compatible con CA-Clipper. * $SEEALSO$ * CURDIR(),FILE(),FERASE(),DELETE FILE * $END$ */ /* $DOC$ * $FUNCNAME$ * DELETE FILE * $CATEGORY$ * Comando * $ONELINER$ * Remueve un archivo del disco * $SYNTAX$ * DELETE FILE * $ARGUMENTS$ * Nombre del archivo a remover * $DESCRIPTION$ * Este comando borra ¢ remueve un archivo del disco. * El nombre de puede especificarse como una cadena literal, * ¢ como una expresi¢n de caracteres. Debe incluir la extensi¢n del * archivo y puede opcionalmente incluir la unidad de disco y el camino. * * El uso de los caracteres comodines '*' y '?' esta permitido. * * Los comandos SET DEFAULT y SET PATH no afectan la operatoria de este * comando. * El archivo debe ser considerado cerrado por el sistema operativo, * antes de que ‚ste pueda ser borrado. * $EXAMPLES$ * ERASE c:\autoexec.bat // s¢lo es una broma, no lo intente! * ERASE c:/temp/read.txt * * $STATUS$ * R * $COMPLIANCE$ * Este comando es compatible con CA-Clipper. * $SEEALSO$ * CURDIR(),FILE(),FERASE(),ERASE * $END$ */ /* $DOC$ * $FUNCNAME$ * __TYPEFILE() * $CATEGORY$ * Data input and output * $ONELINER$ * Muestra el contenido de un archivo en la consola y/o impresora * $SYNTAX$ * __TYPEFILE( , [] ) --> NIL * $ARGUMENTS$ * Es el nombre del archivo a visualizar. * Si el archivo tiene una extensi¢n, esta debe ser * especificada (no hay valor por defecto). * * Es un valor l¢gico opcional que especifica a donde * deber¡a ir la salida: * (.F.) salida solamente a la pantalla * (.T.) salida a pantalla e impresora. * Por defecto es (.F.). * $RETURNS$ * __TYPEFILE() siempre devuelve NIL. * $DESCRIPTION$ * La funci¢n __TYPEFILE() muestra el contenido de un archivo de texto * en la pantalla, con una opci¢n para enviar esta informaci¢n tambi‚n * a la impresora. * El archivo es visualizado tal como est  sin ning£n encabezado ¢ * formateo previo. * * Si no contiene ning£n camino ¢ path, __TYPEFILE() tratar  * de encontrar primero el archivo en el directorio indicado por * SET DEFAULT y luego entonces en todos los directorios indicados por * SET PATH. * Si el archivo , no puede ser encontrado ocurrir  un error * en tiempo de ejecuci¢n. * * Use SET CONSOLE OFF para suprimir la salida por pantalla. * Usted puede pausar la salida usando , y pulsando cualquier * tecla para continuar. * * La funci¢n __TYPEFILE() es usada en el preprocesamiento del comando * TYPE. * $EXAMPLES$ * Los siguientes ejemplos asumen que un archivo con el nombre * MiTexto.DAT existe en todos los caminos especificados, un error de * ejecuci¢n podr¡a ser visualizado de no ser as¡. * * // Visualiza el archivo MiTexto.DAT en la pantalla * __TYPEFILE( "MiTexto.DAT" ) * * // Visualiza el archivo MiTexto.DAT en la pantalla e impresora * __TYPEFILE( "MiTexto.DAT", .T. ) * * // Visualiza el archivo MiTexto.DAT en la impresora solamente * SET CONSOLE OFF * * __TYPEFILE( "MiTexto.DAT", .T. ) * * SET CONSOLE ON * * $STATUS$ * R * $COMPLIANCE$ * __TYPEFILE() trabaja exactamente como __TYPEFILE() de CA-Clipper * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * COPY FILE,SET DEFAULT,SET PATH,SET PRINTER,TYPE * $END$ */ /* $DOC$ * $FUNCNAME$ * TYPE * $CATEGORY$ * Comando * $ONELINER$ * Visualiza el contenido de un archivo de texto * $SYNTAX$ * TYPE [TO PRINTER] [TO FILE ] * $ARGUMENTS$ * Es el nombre del archivo a visualizar. * Si el archivo tiene una extensi¢n, esta debe ser * especificada (no hay valor por defecto). Esta puede ser * especificada como literal de nombre de archivo ¢ como * una expresi¢n de caracteres encerrada entre parentesis * * TO PRINTER es una cl usula opcional que especifica que la salida * deber¡a ir a la pantalla e impresora. * * TO FILE Copia el archivo fuente tambi‚n * a un archivo. Si ninguna extensi¢n es dada (.txt) es * agregada al archivo de salida. * puede ser especificado como literal de * nombre de archivo ¢ como una expresi¢n de caracteres * encerrada entre par‚ntesis. * $DESCRIPTION$ * El comando TYPE muestra el contenido de un archivo de texto en la * pantalla, con una opci¢n para enviar esta informaci¢n tambi‚n * a la impresora ¢ a un archivo alternativo. * El archivo es visualizado tal como est  sin ning£n encabezado ¢ * formateo previo. * * Si no contiene ning£n camino ¢ path, TYPE tratar  * de encontrar primero el archivo en el directorio indicado por * SET DEFAULT y luego entonces en todos los directorios indicados por * SET PATH. * Si el archivo , no puede ser encontrado ocurrir  un error * en tiempo de ejecuci¢n. * * Si no contiene ning£n camino ¢ path, este es creado en * directorio indicado en SET DEFAULT. * * Use SET CONSOLE OFF para suprimir la salida por pantalla. * Usted puede pausar la salida usando , y pulsando cualquier * tecla para continuar. * $EXAMPLES$ * Los siguientes ejemplos asumen que un archivo con el nombre * MiTexto.DAT existe en todos los caminos especificados, un error de * ejecuci¢n podr¡a ser visualizado de no ser as¡. * * // Visualiza el archivo MiTexto.DAT en la pantalla * TYPE MiTexto.DAT * * // Visualiza el archivo MiTexto.DAT en la pantalla e impresora * TYPE MiTexto.DAT TO PRINTER * * // Visualiza el archivo MiTexto.DAT en la impresora solamente * SET CONSOLE OFF * * TYPE MiTexto.DAT TO PRINTER * * SET CONSOLE ON * * // Visualiza el archivo MiTexto.DAT en la pantalla y lo env¡a al * // archivo MiReporte.txt * TYPE MiTexto.DAT TO FILE MiReporte * * $STATUS$ * R * $COMPLIANCE$ * TYPE trabaja exactamente como el comando TYPE de CA-Clipper * $SEEALSO$ * COPY FILE,SET DEFAULT,SET PATH,SET PRINTER,__TYPEFILE() * $END$ */ /* $DOC$ * $FUNCNAME$ * CURDIR() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Retorna el nombre del directorio actual del Sistema Operativo * $SYNTAX$ * CURDIR( [] ) --> cPath * $ARGUMENTS$ * Letra del disco del Sistema Operativo * $RETURNS$ * Devuelve , el nombre del directorio actual * $DESCRIPTION$ * Esta funci¢n devuelve el nombre del directorio actual del Sistema * Operativo para un drive especificado. * Si no es especificado, el drive al que se encuentra * actualmente loggeado ¢ conectado ser  usado. * * Esta funci¢n no deber¡a devolver las barras de separaci¢n de * directorio que se encuentren por delante y por detr s del directorio, * sino s¢lo el nombre. * Si un error ha sido detectado por la funci¢n, ¢ el directorio actual * del Sistema Operativo es el raiz, el valor de la funci¢n podr¡a ser * un byte nulo (NULL). * $EXAMPLES$ * ? CURDIR() * * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper. * $PLATFORMS$ * Todas * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * FILE() * $END$ */ /* $DOC$ * $FUNCNAME$ * COPY FILE * $CATEGORY$ * Comando * $ONELINER$ * Copia un archivo a uno nuevo ¢ a un dispositivo * $SYNTAX$ * COPY FILE TO | * $ARGUMENTS$ * es el nombre del archivo fuente ¢ de origen * * es el nombre del archivo destino * * es el nombre del dispositivo al que se va a enviar * los datos. Si no existe el dispositivo se crea un * archivo con ese nombre. * $DESCRIPTION$ * Este comando realiza una copia exacta del archivo y * le asigna el nombre . * Ambos archivos deben tener la extensi¢n incluida, no se agrega * ninguna por defecto. Ambos archivos pueden especificar tanto * la unidad de disco como el camino. * Tanto ambos archivos como el dispositivo pueden ser especificados * como literal de nombre de archivo ¢ como una expresi¢n de caracteres * encerrada entre parentesis. * * El nombre del dispositivo puede ser tanto uno local como uno de red * LPT1, \\SHARED\PRINTER, etc. * * Los comandos SET DEFAULT y SET PATH no afectan la operatoria de este * comando. * $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$ * Este comando es compatible con CA-Clipper. * $SEEALSO$ * ERASE,RENAME,FRENAME(),FERASE(),COPY TO * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_FEOF() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Chequea si el puntero del archivo esta al final (EOF). * $SYNTAX$ * HB_FEOF( ) --> lEsEOF * $ARGUMENTS$ * Manejador de archivo del sistema operativo * El valor es obtenido del llamado a alguna de * las funciones FCREATE() ¢ FOPEN(). * $RETURNS$ * Devuelve , un valor l¢gico verdadero (.T.) si el puntero * del archivo de ese manejador est  al final del archivo (EOF), ¢ * falso (.F.) si a£n no lleg¢ al fin del archivo. * $DESCRIPTION$ * Esta funci¢n testea si el archivo abierto correspondiente al * manejador tiene el puntero del archivo al final del * archivo, E-O-F. * * Si el manejador de archivo falta, no es num‚rico, ¢ el archivo no * est  abierto, entonces esta funci¢n devuelve .T. y establece el * valor devuelto por FERROR() a -1 (FS_ERROR), ¢ a un valor de error * dependiente del compilador de lenguaje C (EBADF ¢ EINVAL). * $EXAMPLES$ * nHandle := FOPEN('FILE.TXT') * * ? FREADSTR( nHandle, 80) * * IF HB_FEOF( nHandle ) * ? "Fue alcanzado el Fin-de-Archivo (EOF)" * ELSE * ? FREADSTR( nHandle, 80) * ENDIF * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es una extensi¢n de Harbour. * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * DIRREMOVE() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Remueve un directorio * $SYNTAX$ * DIRCHANGE( ) --> nError * $ARGUMENTS$ * Es el nombre del directorio a remover * $RETURNS$ * Devuelve un valor num‚rico, es cero si el directorio fu‚ * exitosamente removido, de otro modo devuelve el n£mero del £ltimo * error ocurrido. * $DESCRIPTION$ * Esta funci¢n intenta remover el directorio especificado en la * variable . Si esta funci¢n falla, devolver  el c¢digo * num‚rico del sistema operativo correspondiente al £ltimo error * ocurrido. * Consulte la funci¢n FERROR() por una descripci¢n del error. * $EXAMPLES$ * cDir := ".\Backup" * nError := DIRREMOVE( cDir ) * * IF nError == 0 * ? "La remoci¢n del directorio [" + cDir + "] fu‚ exitosa" * ENDIF * $TESTS$ * Ver ejemplos * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper 5.3 * $PLATFORMS$ * Todas * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * MAKEDIR(),DIRCHANGE(),ISDISK(),DISKCHANGE(),DISKNAME(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * DIRCHANGE() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Cambia el directorio activo * $SYNTAX$ * DIRCHANGE( ) --> nError * $ARGUMENTS$ * Es el nombre del directorio al cual Ud. desea cambiarse * $RETURNS$ * Devuelve un valor num‚rico, es cero si el directorio fu‚ * exitosamente cambiado, de otro modo devuelve el n£mero del £ltimo * error ocurrido. * $DESCRIPTION$ * Esta funci¢n intenta cambiar el directorio actual a otro especificado * en la variable . Si esta funci¢n falla, devolver  el * c¢digo num‚rico del sistema operativo correspondiente al £ltimo error * ocurrido. * Consulte la funci¢n FERROR() por una descripci¢n del error. * $EXAMPLES$ * cDir := "\temp" * nError := DIRCHANGE( cDir ) * * IF nError == 0 * ? "El cambio al directorio [" + cDir + "] fu‚ exitoso" * ENDIF * $TESTS$ * Ver ejemplos * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper 5.3 * $PLATFORMS$ * Todas * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * MAKEDIR(),DIRREMOVE(),ISDISK(),DISKCHANGE(),DISKNAME(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * MAKEDIR() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Crea un nuevo directorio * $SYNTAX$ * MAKEDIR( ) --> nError * $ARGUMENTS$ * Es el nombre del directorio que Ud. desea crear * $RETURNS$ * Devuelve un valor num‚rico, es cero si el directorio fu‚ * exitosamente creado, de otro modo devuelve el n£mero del £ltimo * error ocurrido. * $DESCRIPTION$ * Esta funci¢n intenta crear un nuevo directorio con el nombre * especificado en la variable . Si esta funci¢n falla, * devolver  el c¢digo num‚rico del sistema operativo correspondiente * al £ltimo error ocurrido. * Consulte la funci¢n FERROR() por una descripci¢n del error. * $EXAMPLES$ * cDir := "Temp" * nError := MAKEDIR( cDir) * IF nError == 0 * ? "La creaci¢n del directorio [" + cDir + "] fu‚ exitosa" * ENDIF * $TESTS$ * Ver ejemplos * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper 5.3 * $PLATFORMS$ * Todas * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * DIRCHANGE(),DIRREMOVE(),ISDISK(),DISKCHANGE(),DISKNAME(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * ISDISK() * $CATEGORY$ * Bajo Nivel * $ONELINER$ * Verifica si un drive est  listo * $SYNTAX$ * ISDISK( ) --> lExito * $ARGUMENTS$ * Una letra de drive que sea v lida * $RETURNS$ * Devuelve un valor l¢gico , es verdadero (.T.) si el drive * est  listo, ¢ falso (.F.) si no est  listo. * $DESCRIPTION$ * Esta funci¢n intenta acceder a un drive. Si el aceso al drive fu‚ * Es £til para funcines de respaldo ¢ back-up, as¡ Ud. puede determinar * si el drive que va a recibir los datos a resguardar est  listo ¢ no. * Si esta funci¢n falla, devolver  el c¢digo num‚rico del sistema * operativo correspondiente al £ltimo error ocurrido. * Consulte la funci¢n FERROR() por una descripci¢n del error. * $EXAMPLES$ * 1) Testea el drive A: * * IF ISDISK("A") * ? "El Drive est  listo " * ENDIF * * * 2) Testea el drive B: * cDrive := "B" * * IF ! ISDISK( cDrive ) * ? "El Drive [" + cDrive + ":] No est  disponible" * ENDIF * $TESTS$ * Ver ejemplos * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es compatible con CA-Clipper 5.3 * $PLATFORMS$ * Todas * $FILES$ * La librer¡a asociada es rtl * $SEEALSO$ * DIRCHANGE(),MAKEDIR(),DIRREMOVE(),DISKCHANGE(),DISKNAME() * $END$ */