Página 1 de 1

txt

Publicado: Mar Abr 10, 2007 6:18 pm
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

txt

Publicado: Mié Abr 11, 2007 12:01 pm
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

txt

Publicado: Mié Abr 11, 2007 12:20 pm
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.
>

txt

Publicado: Mié Abr 11, 2007 1:31 pm
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.
>>

txt

Publicado: Mié Abr 11, 2007 1:38 pm
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

txt

Publicado: Jue Abr 12, 2007 11:08 pm
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.
>>