STORE FOPEN
('archivo.txt') TO gnFileHandleSTORE FSEEK
(gnFileHandle, 0, 2) TO gnEndSTORE FSEEK
(gnFileHandle, 0) TO gnTopgcString =
FGETS(gnFileHandle, gnEnd)?gcString
=
FCLOSE(gnFileHandle)Ahora en un archivo con 12 registros no tengo problemas, con otro de 39 o mayor me tira un error,”El valor, tipo o numero de argumentos no es valido para la función“. Puede ser que el error sea por el tamaño de los archivos?, tengo que usar algún parámetro especial, o usar otras funciones para importar el archivo.
Desde ya muchas gracias por la ayuda.
gcString = FGETS(gnFileHandle, gnEnd)
El 13/03/12, Gorka <gorka...@gmail.com> escribió:
-----Mensaje original-----
From: Carlos Miguel FARIAS
Sent: Tuesday, March 13, 2012 8:48 AM
To: publice...@googlegroups.com
Subject: Re: [vfp] Re: Problema Importando archivo de Texto
Fgets lee hasta 8192 caracteres o hasta un retorno de carro.
Si tu archivo de texto tiene retornos de carro, lo correcto ser�a
hacer un bucle leyendo y cada pasada, te trae los datos de un
registro.
para archivos no muy grandes, podes usar filetostr(), luego con
alines(), separas el archivo en registros, y luego procesas el
arreglo.
En mi caso prefiero fgets, porque me independiza del tama�o del
archivo (he procesado archivos de texto de m�s de 200 Megabytes) en
una maquina con 256 MB y los tiempos son razonables (el programa
analizaba directorios completos con varios gigabytes de datos
distribuidos en archivos de texto de todo tipo de tama�o).
filetostr() no podr�a tomar archivos muy grandes, porque estar�a
cargando todo el archivo en memoria, en un solo espacio de
direcciones, luego, si tenes que dividirlo en partes para analizarlas
individualmente, implica otro tanto de memoria (el doble), si eso
agota el espacio de memoria directa que el equipo puede aplicar al
programa y tiene que empezar a paginar, el tiempo de respuesta se va,
y no vuelve.
Saludos: Miguel, Santa Rosa (LP)
El 13/03/12, Gorka <gorka...@gmail.com> escribi�:
> Hola Patricio
> Seg�n la ayuda de fox:
> FGETS( ) devuelve un m�ximo de 8192 bytes. Si se omite nBytes,
> FGETS( ) devuelve de forma predeterminada 254 bytes.
>
> 39 registros por 279 caracteres son 10881 Bytes, lo cual supera el
> limite.
>
> Cuando haces gcString = FGETS(gnFileHandle, gnEnd) estas leyendo en
> un solo Fgets todo el contenido del fichero.
> Con el c�digo que te pone Walter hace un Fgets por cada linea de 2279.
>
> Si no quiere usar fopen y fgets puedes usar FILETOSTR()
> gcString=FILETOSTR('archivo.txt')
>
> Saludos
> Gorka
>
>
>
> On 12 mar, 23:00, "Pato" <sysp...@gmail.com> wrote:
>> Gracias Walter esto funciona perfecto, tampoco se cual es el problema
>> alguna limitaci�n de tama�o creo, para los comandos que use.
>> Saludos y de mi parte muchas gracias por la buena disposici�n que tenes
>> siempre.
>> Patricio
>>
>> From: Walter R. Ojeda Valiente
>> Sent: Monday, March 12, 2012 6:50 PM
>> To: publice...@googlegroups.com
>> Subject: RE: [vfp] Problema Importando archivo de Texto
>>
>> Pues no s� que problemas tendr�s porque con el siguiente programita lo
>> le�
>> de lo m�s bien, completo y sin problemas:
>> mayor me tira un error,�El valor, tipo o numero de argumentos no es
>> valido
>> para la funci�n�. Puede ser que el error sea por el tama�o de los
>> archivos?, tengo que usar alg�n par�metro especial, o usar otras