Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error en lectura logs texto (https://www.clubdelphi.com/foros/showthread.php?t=1074)

alejandrowa 03-06-2003 18:23:53

Error en lectura logs texto
 
Buenas:

Tengo el siguiente problema y espero que algun compañero me ayude.

Estoy haciendo un programita para analizar logs de una central telefonica. La central telefonica me genera los del siguiente formato por ejem:

12/3/03 01 0:34 
15/5/03 01 05:33 

Como ven esos cuadritos supongo que son para separar espacios, pero el delphi al procesar estos caracteres se cae el programa. Algun sabe como puedo lidiar con este problema..


gracias

andres1569 03-06-2003 18:51:22

Hola:

¿Cómo capturas esos logs? ¿LLegan como una cadena de texto y los insertas en una tabla? ¿Cómo se envían y reciben esos logs? De por sí, unos cuadraditos no hacen caer ningún programa, otra cosa es lo que hagas con ellos o en qué estructura los almacenes.

Un saludo

alejandrowa 03-06-2003 19:30:03

Los logs me llegan desde la central telefonica en un archivo de texto, el cual es alimentado automaticamente por la central.

Lo que hago es abrir el archivo de texto y leer linea a linea, analizando la fecha y la duracion de la llamada....

El programa se cae cuando llega a esos cuadritos. Creo que esos cuadritos son para simular espacios, en el notepad se ven pero por ejemplo en otros editores , lo que crean son espacios entre texto. COmo para dar formato

NO se que sera.

gracias

Julià T. 03-06-2003 19:30:04

yo diria que los ficheros no son de solo texto, más bién texto y binario, ya que los cuadraditos suelen aparecer en ficheros binarios abiertos desde el bloc de notas.


Realmente, depende del modo de lectura, puede pasar cualquier cosa cuando lees un fichero binario como si fuera de texto.

alejandrowa 03-06-2003 19:37:26

Yo si creo que el archivo de texto tiene sus partes binarios, por que al quitar esos cuadritos mi software funciona perfecto. Como puedo eliminar estos cuadritos o que delphi no los tome en cuenta o alguna manera de eliminar el problema.


gracias.

Julià T. 03-06-2003 19:45:34

leer el texto hasta que encuentres un caracter menor que 32 es una posible solución

andres1569 03-06-2003 20:31:28

Hola:

Si usas el método LoadFromFile de un objeto TStrings, esos caracteres últimos "despistan" y no se puede leer el archivo. Prueba con este código. En el parámetro Lista puedes pasar la propiedad Lines de un Memo, por ejemplo, para ver el resultado.

Código:

procedure LeeArchivo (NomFile: String; Lista: TStrings);
var
  ArchText : TextFile;
  s : String;
begin
  Lista.Clear;
  AssignFile (ArchText, NomFile);
  Reset (ArchText);
  while NOT EOF(ArchText) do
  begin
    ReadLn (ArchText, s);  // leemos una linea
    s := TrimRight(s);    // eliminamos espacios y caracteres de control a la derecha
    Lista.Add (s);        // la añadimos a la lista
  end;
  CloseFile (ArchText);
end;

Un Saludo


La franja horaria es GMT +2. Ahora son las 03:48:51.

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