In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

txt

Foro de Xailer profesional en español
Responder
Adan
Mensajes: 7
Registrado: Vie Feb 16, 2007 4:17 pm

txt

Mensaje por Adan »

Saludos, alguien me puede ayudar, necesito recorrer un archivo txt para
despues insertar informacion en una tabla, espero alguien me puedad decir
que funcion o que necesito para hacerlo. Gracias
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

txt

Mensaje por jfgimenez »

Adan,
> Saludos, alguien me puede ayudar, necesito recorrer un archivo txt para
> despues insertar informacion en una tabla, espero alguien me puedad decir
> que funcion o que necesito para hacerlo. Gracias
La forma más sencilla es uasr MemoRead() para leer el fichero a memoria y
después usar MemoLine() para recuperar las líneas una a una.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

txt

Mensaje por miguel »

Hola Jose
Yo tambien en otros post he preguntado acerca de esto.
Ya he probado este sistema anteriormente, pero si el fichero txt tiene
101566 lineas ¿cual seria el sistema?, otros entornos de programación
disponenen de un RDD que trata los ficheros txt como si de un DBF se
tratara.
Saludos. Miguel A. Torrellas
Jose F. Gimenez escribió:
> Adan,
>
>> Saludos, alguien me puede ayudar, necesito recorrer un archivo txt para
>> despues insertar informacion en una tabla, espero alguien me puedad decir
>> que funcion o que necesito para hacerlo. Gracias
>
> La forma más sencilla es uasr MemoRead() para leer el fichero a memoria y
> después usar MemoLine() para recuperar las lí­neas una a una.
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

txt

Mensaje por ignacio »

Miguel,
Nadie te impide utilizar CUALQUIER RDD desde Xailer.
Por cierto, yo utilizo una función propia que aunque carga todo el texto en
memoria (2Gb max) es infinitamente más rápida que MemoLine()
nLen := len( cText )
nFrom := 1
While nFrom <= nLen
cLine := ExtractLine( cText, @nFrom )
enddo
//---------------------------------------------------------- ----------------
FUNCTION ExtractLine(cText, nFrom)
local cLine, cSearch, nAt
cSearch := Substr(cText, nFrom)
nAt := At(CRLF, cSearch)
if nAt > 0
cLine := Substr(cSearch, 1, nAt - 1 )
nFrom += nAt + 2 - 1
else
cLine := cSearch
nFrom := len(cText) + 1
endif
Return cLine
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Miguel A. Torrellas" <miguel@torrellas.net> escribió en el mensaje
news:461cb68f$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola Jose
>
> Yo tambien en otros post he preguntado acerca de esto.
>
> Ya he probado este sistema anteriormente, pero si el fichero txt tiene
> 101566 lineas ¿cual seria el sistema?, otros entornos de programación
> disponenen de un RDD que trata los ficheros txt como si de un DBF se
> tratara.
>
> Saludos. Miguel A. Torrellas
>
> Jose F. Gimenez escribió:
>> Adan,
>>
>>> Saludos, alguien me puede ayudar, necesito recorrer un archivo txt para
>>> despues insertar informacion en una tabla, espero alguien me puedad
>>> decir
>>> que funcion o que necesito para hacerlo. Gracias
>>
>> La forma más sencilla es uasr MemoRead() para leer el fichero a memoria y
>> después usar MemoLine() para recuperar las líneas una a una.
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

txt

Mensaje por jfgimenez »

Miguel,
> Yo tambien en otros post he preguntado acerca de esto.
>
> Ya he probado este sistema anteriormente, pero si el fichero txt tiene
> 101566 lineas ¿cual seria el sistema?, otros entornos de programación
> disponenen de un RDD que trata los ficheros txt como si de un DBF se
> tratara.
Por ese tamaño de fichero no hay problema... estamos en 32 bits, y aunque no
es normal llegar hasta el límite, dicho límite está en 4GB!!!
No obstante, si el tamaño te preocupa o consideras que el fichero es muy
grande como para leerlo entero en memoria, siempre puedes usar las funciones
FOpen(), FRead() / FReadStr() y FClose() para leerlo por trozos.
Respecto al RDD, pues bien, puede ser una solución para un caso puntual.
Pero no creo que haya mucha gente en [x]Harbour dispuesta a invertir horas
de trabajo en hacer un RDD que se va a usar muy pocas veces y que además se
pueden resolver de otra forma también muy sencilla.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

txt

Mensaje por miguel »

Gracias Jose e Ignacio por vuestras respuestas.
La función de Ignacio, es verdad corre mas rápido que memoline().
Saludos. Miguel A. Torrellas
Miguel A. Torrellas escribió:
> Hola Jose
>
> Yo tambien en otros post he preguntado acerca de esto.
>
> Ya he probado este sistema anteriormente, pero si el fichero txt tiene
> 101566 lineas ¿cual seria el sistema?, otros entornos de programación
> disponenen de un RDD que trata los ficheros txt como si de un DBF se
> tratara.
>
> Saludos. Miguel A. Torrellas
>
> Jose F. Gimenez escribió:
>> Adan,
>>
>>> Saludos, alguien me puede ayudar, necesito recorrer un archivo txt para
>>> despues insertar informacion en una tabla, espero alguien me puedad
>>> decir
>>> que funcion o que necesito para hacerlo. Gracias
>>
>> La forma más sencilla es uasr MemoRead() para leer el fichero a
>> memoria y después usar MemoLine() para recuperar las lí­neas una a una.
>>
Responder