Leer un archivo de texto
-
- Posts: 37
- Joined: Tue Aug 10, 2010 2:05 pm
Leer un archivo de texto
Estimados amigos:
Necesito leer un archivo de texto (.TXT).
Quiero extraer línea por línea su información. Encontré varias opciones, pero quisiera algo bien simple: Abrir, leer y cerrar.
Agradecido de antemano.
Necesito leer un archivo de texto (.TXT).
Quiero extraer línea por línea su información. Encontré varias opciones, pero quisiera algo bien simple: Abrir, leer y cerrar.
Agradecido de antemano.
Re: Leer un archivo de texto
Abel,
Debes incluir en el PRG el header #include "FileIO.ch".
Y luego usar las funciones para manejo de archivos "low level" como estas:
fOpen(), fRead(), fClose(), fError(), fSeek().
Saludos,
George
Debes incluir en el PRG el header #include "FileIO.ch".
Y luego usar las funciones para manejo de archivos "low level" como estas:
fOpen(), fRead(), fClose(), fError(), fSeek().
Saludos,
George
Re: Leer un archivo de texto
Abel aquí un ejemplo
Saludos,
Adhemar
Code: Select all
Function LeerTxt(cFile)
Local oFile,cLinea:=""
oFile:= TTxtFile():New( cFile )
Do while !oFile:EOF()
cLinea :=oFile:ReadLine()
oFile:Skip()
EndDo
oFile:End()
Return
Adhemar
Saludos,
Adhemar C.
Adhemar C.
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Leer un archivo de texto
Otro ejemplo:
Saludos
Code: Select all
local FO_READWRITE:=2, FO_SHARED:=64 , FS_END:=2 //Fileio.ch
local cFile := ".\TuFichero.txt", nHand, cCad:="LoQueVasAEscribir"
if !file(cFile)
nHand := FCreate( cFile ) // creamos archivo
FWrite(nHand, cCad + CRLF+"") // escribimos en el
FClose(nHand) // lo cerramos el fichero
else
nHand := FOpen( cFile, FO_READWRITE + FO_SHARED ) // abriendol fichero lect-escrit-compartido
FSeek(nHand, 0, FS_END) // nos colocamos al final
FWrite(nHand, cCad + CRLF+"") // escribimos en el
FClose(nHand) // lo cerramos
endif[i]
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Leer un archivo de texto
Algo muy sencillo:abelcervantes wrote:pero quisiera algo bien simple: Abrir, leer y cerrar.
Code: Select all
local cFichero:="Ejemplos.txt"
dbCreate("C:\Prueba",{{"TEXTO","C",254,0}})
dbusearea(.t.,,"C:\prueba","prueba",.F.)
dbselectarea("Prueba")
append from &cFichero DELIMITED
prueba->(MyXBrowse(Alias(),"LEYENDO DBF (Desde un Fich de Texto se agrega a una Dbf con APPEND FROM...DELIMITED)"))
prueba->(dbcloseArea())
Ferase("c:\prueba.dbf")
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
-
- Posts: 37
- Joined: Tue Aug 10, 2010 2:05 pm
Re: Leer un archivo de texto
Muchas gracias amigos por sus respuestas.
Ya había intentado con las funciones: fOpen(), fRead(), etc., pero no funcionaba. Luego comprobé que mi archivo .TXT estaba en formato UNICODE y las funciones que me sugieren solo leen ANSI, asi que abrí el archivo de texto y lo grabé en formato ANSI.
Entonces pude leer el archivo pero no línea por línea, seguramente estoy cometiendo algún error.
Asi que recurrí a una función antigua (según yo): MemoRead y con MemoLine fue sencillo leer el archivo.
Mi gran duda ahora es ¿podré leer con esta función archivos grandes?. Según leí por algún lado solo puede leer archivos pequeños, de hecho el archivo que abró pesa 56kb.
De todas formas gracias George, Adhemar (maestro), y Francisco.
Ya había intentado con las funciones: fOpen(), fRead(), etc., pero no funcionaba. Luego comprobé que mi archivo .TXT estaba en formato UNICODE y las funciones que me sugieren solo leen ANSI, asi que abrí el archivo de texto y lo grabé en formato ANSI.
Entonces pude leer el archivo pero no línea por línea, seguramente estoy cometiendo algún error.
Asi que recurrí a una función antigua (según yo): MemoRead y con MemoLine fue sencillo leer el archivo.
Mi gran duda ahora es ¿podré leer con esta función archivos grandes?. Según leí por algún lado solo puede leer archivos pequeños, de hecho el archivo que abró pesa 56kb.
De todas formas gracias George, Adhemar (maestro), y Francisco.
Re: Leer un archivo de texto
Abel,
Haciendo testing con FWH64 pude usar Memoread() para leer un archivo de mas de 2 GB.
Saludos,
George
Haciendo testing con FWH64 pude usar Memoread() para leer un archivo de mas de 2 GB.
Saludos,
George
- jrestojeda
- Posts: 543
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
Re: Leer un archivo de texto
Hola....
Prueba el siguiente código muy sencillo.
Espero te sirva la idea.
Saludos,
Prueba el siguiente código muy sencillo.
Code: Select all
Function CheckFileTxt()
cTexto:=MEMOREAD( "C:\MiFile.txt" )
nLinea:=MLCOUNT(cTexto)
FOR Q=1 TO nLinea
cLinea:=MEMOLINE(cTexto,255,Q)
MsgInfo(cLinea)
NEXT
Return nil
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
Re: Leer un archivo de texto
Abel, utilizo muchísimo programas de lectura/conversión de archivos de texto, y solo con funciones FOpen(), FRead(), FSeek(), FCreate(), FWrite(), etc., incluso algunos de ellos debo convertir de EBCDIC a ASCII o viceversa.abelcervantes wrote:Muchas gracias amigos por sus respuestas.
Ya había intentado con las funciones: fOpen(), fRead(), etc., pero no funcionaba. Luego comprobé que mi archivo .TXT estaba en formato UNICODE y las funciones que me sugieren solo leen ANSI, asi que abrí el archivo de texto y lo grabé en formato ANSI.
Entonces pude leer el archivo pero no línea por línea, seguramente estoy cometiendo algún error.
Asi que recurrí a una función antigua (según yo): MemoRead y con MemoLine fue sencillo leer el archivo.
Mi gran duda ahora es ¿podré leer con esta función archivos grandes?. Según leí por algún lado solo puede leer archivos pequeños, de hecho el archivo que abró pesa 56kb.
De todas formas gracias George, Adhemar (maestro), y Francisco.
Los archivos de texto que leo están por encima de los 4GB y no tienen ningún problema.
Así que quedate tranquilo, es solo tomarle la mano al asunto.
Abrazo. Miguel