FoxPro/Visual FoxPro - Problemas con fopen

   
Vista:

Problemas con fopen

Publicado por Jose Antonio (16 intervenciones) el 05/09/2008 00:53:16
Saludos amigos:
Tengo un problema muy grave en lo que se refiere una funcion del visual foxpro, o talvez sea de version, estoy utilizando la version 7 de lo que es el VFP.
Ahora explico el problema, tengo un archivo con informacion de un poco mas de 2.1 Gb de tamaño en formato texto, lo que hacia antes de que llegara a ese tamaño o se aumentara de tamaño de dicho archivo era usar la funcion "fopen" y seleccionar ciertos registros o lineas del archivo para ponerlo en una tabla "dbf", lo que sucede ahora es que no me reconoce el final del archivo osea la funcion "feof" al abrir el archivo me retorna el final del archivo sin haber recorrido ninguna linea dentro del texto. Luego obviando la funcion "feof" procedo a leer el archivo hasta llegar a un cierto punto casi al final del archivo la funcion "fgets" me retorna un error de insuficiencia de memoria.
No se como solucionarlo porque necesito leer la totalidad del archivo mencionado, no se si se puede solucionar el cambio de la version de mi vfp.
Gracias amigos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con fopen

Publicado por JAVIER (265 intervenciones) el 05/09/2008 01:41:28
Hola, el archivo de 2,1 gb que formato de texto tiene? Tal vez creando una estructura de tabla temporal y luego emplear APPEND FROM TuArchivo.txt SDF o DELIMITED WITH ...Luego podrías tomar de esa tabla solo los datos que necesitas.
Consulta APPEND FROM.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con fopen

Publicado por Jose Antonio (16 intervenciones) el 05/09/2008 02:37:02
Hola.
El archivo tiene formato txt con campos definidos, lo que me dices usar APPEND FROM lo descarte hace mucho tiempo por eso es que usaba "fgets" para leer el archivo, ya que APPEND FROM es muy impredecible en su trabajo ademas son mas de 30 millones de registros de los cuales solo seleciono 4 millones de registro aproximadamente y ahora el archivo se incremento mas de lo esperado, y la funcion "fopen" tiene un limite de tamaño de archivo.
por favor si hay otra sugerencia.
GRacias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con fopen

Publicado por Ricardo (153 intervenciones) el 05/09/2008 08:59:14
gnFileHandle = FOPEN("test.txt")

* Busca el final de archivo para determinar el número de bytes.
nSize = FSEEK(gnFileHandle, 0, 2) && Mueve el puntero a EOF

= FSEEK(gnFileHandle, 0, 0) && Mueve el puntero a BOF

Creo que con leer por bloques hasta a que lnBytes alcance un valor mayor que nSize
cString = FREAD(gnFileHandle, nTamañoBloque)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con fopen

Publicado por Jose Antonio (16 intervenciones) el 05/09/2008 20:32:57
Hola,
El archivo tiene por tamaño mas o menos de 2.1Gb me parece que "f open" solo reconoce hasta 2.0 Gb, porque al abrir el archivo p.e. FOPEN("test.txt") y luego llamar a la funcion EOF() me da verdadero como si el archivo abierto no tubiera ninguna información.
Al usar FSEEK() no va aningun lado,
Bueno estoy usando FGETS(hFile), ademas que cada registro no tiene mas de 150 caracteres por linea. Porfavor si existe otra menera de leer el arcihvo. Intentare usar FREAD(gnFileHandle, nTamañoBloque).

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar