FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
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 |
#4
|
|||
|
|||
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. |
#5
|
|||
|
|||
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. |
#6
|
|||
|
|||
leer el texto hasta que encuentres un caracter menor que 32 es una posible solución
|
#7
|
|||
|
|||
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; |
|
|
|