Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-11-2010
rogeliogamberro rogeliogamberro is offline
Miembro
 
Registrado: oct 2008
Posts: 23
Poder: 0
rogeliogamberro Va por buen camino
Smile Problemita en Procesamiento de Archivo de Texto

Hola a todos!

Tengo que hacerles una consulta sencilla sobre el procesamiento de archivos de texto. Estoy utilizando las funciones fopen, fscanf y fgets. Basicamente debo ir cargando en un bucle for una tabla como la siguente:

----------------------------------------------
I010065478
Juan Perez
Brown 123
Buenos Aires
(0231) 12345
pepe@mail.com
45
14

I010065987
Juan Lopez
White 197
Buenos Aires
(0231) 567940
pancho@mail.com


67
----------------------------------------------

Mis dudas son las siguientes:

1) Para levantar un Nombre (que posee espacios) que me conviene usar??
2) En el caso de tener que cargar un entero y este no esta (solo hay un enter). Como lo implemento?? Porque si hay un enter en vez de un numero se me corre todo.

Muchas Gracias!
Responder Con Cita
  #2  
Antiguo 18-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hola Rogelio.
Antes de continuar te hago una sugerencia; Si te es posible adoptarla dímelo, porque en ese caso las respuestas/soluciones son diferentes a las que puedes obtener tal y como o estás haciendo ahora.

La sugerencia es que utilices un TStrings para cargar el fichero, el lugar de hacerlo con las funciones que comentas. Es mucho más simple y salvo que el fichero fuera "muy, muy grande" no creo que existan diferencias de velocidad aceptables.

Puedes cargar un fichero de texto utilizando un código similar a este:

Código Delphi [-]
var
  TS:TStrings;
begin

  TS := TStringList.Create();
  try
    TS.LoadFromFile('c:\temp\datos.txt');

    ...
    // procesar
    ...
  finally
    TS.Free;
  end;
end;

De estar forma el recorrido paracapturar las líneas es mucho más sencillo:

Código Delphi [-]
  Str := TS[0]    -->  Obtendrías la primera línea
  
  // para recorrerlas todas
  for i:=0 to (TS.Count - 1) do begin
    Str := TS[i]
    ...
  end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 18-11-2010
rogeliogamberro rogeliogamberro is offline
Miembro
 
Registrado: oct 2008
Posts: 23
Poder: 0
rogeliogamberro Va por buen camino
Cool

Gracias por tu respuesta... Pense antes hacerlo con un Memo oculto pero tiene la limitacion de los 64KB. Actualmente el fichero esta en el orden de los 3,5MB.... Conviene hacer como tu dices o con las funciones que nombre? Y como seria la idea para procesar?? Primero lo leo como texto, valido y convierto al formato que necesito?
Responder Con Cita
  #4  
Antiguo 18-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si en algun caso necesitas "saltarte" esa restricción puedes utilizar un TRichEdit, que en cierta manera es similar y no la tiene.
De todas formas, este no es el caso, porque no necesitas control visual (a no se que quieras seguir el proceso visualmente), te basta con la clase TStrings.

Con 3,5Mg, puedes hacerlo perfectamente con un TStrings.
Una simple prueba, en mi equipo, tarda 350 ms en cargarlo en un RichEdit, por el tema visual, y apenas 50 ms en cargarlo en un TStrings.

Para procesar, haz el recorrido leyendo por líneas, tal y como te he mostrado más arriba, y luego cada línea la tratas como sea necesario (convirtiéndola, almacenándola,...)

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 18-11-2010
rogeliogamberro rogeliogamberro is offline
Miembro
 
Registrado: oct 2008
Posts: 23
Poder: 0
rogeliogamberro Va por buen camino
Smile

Muchas Gracias por la pronta respuesta... Ya me pongo a trabajar en ello...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Procesamiento de imagenes trex2000 Gráficos 4 27-10-2010 14:42:44
procesamiento de voz elcigarra Varios 0 26-01-2006 14:05:29
Como puedo grabar texto en un Archivo de Texto sin Sobreescribir???? AGAG4 Varios 12 08-11-2005 23:53:00
Db y archivo de texto carlospcs Conexión con bases de datos 0 11-08-2004 00:55:09
Archivo de Texto tiel Varios 5 16-07-2004 21:37:12


La franja horaria es GMT +2. Ahora son las 15:53:04.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi