FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
eliminar lineas de un txt.
buenos dias amigos del foro, estoy trabajando con una coletora de datos que genera un txt, el problema esta que el archivo tiene lineas en blanco y cuando lo estoy leyendo para insertarlo en la BD me presenta un error, la pregunta es como hago para eliminar las lineas en blanco del txt. Gracias.
__________________
____________________________ Un saludo a todos... |
#2
|
||||
|
||||
Saludos!
¿Como estás leyendo el archivo?, te lo pregunto porque podrías probar a utilizar la clase "TStringList" para leer el archivo a través del método "LoadFromFile" y, una vez leído, crear un bucle que recorra cada elemento y elimine las líneas en blanco, ejemplo:
(Claro que todo dependerá de como sea la estructura del archivo .txt) Chao! |
#3
|
|||
|
|||
Gracias por responder jmariano, el txt lo leo de esta manera:
Code: ______________________________________________________________ Archivo.LoadFromFile('C:INVENTARIO.txt'); for I := 0 to Archivo.Count -1 do begin Campos.Clear; Campos.CommaText:= Archivo[i]; Codigo:= Campos[0]; end; ______________________________________________________
__________________
____________________________ Un saludo a todos... |
#4
|
||||
|
||||
Ok, entonces prueba simplemente:
Es, básicamente, lo mismo que te comenté pero ignorando las líneas en blanco. |
#5
|
|||
|
|||
Gracias por responder, pero no funciona???
__________________
____________________________ Un saludo a todos... |
#7
|
|||
|
|||
Gracias por responder roman, pero me da error: incompatible string and boolean ?
__________________
____________________________ Un saludo a todos... |
#8
|
|||
|
|||
ya logre correr el trim, pero igual me da error al leer por la linea en blanco
__________________
____________________________ Un saludo a todos... |
#10
|
||||
|
||||
Cita:
// Saludos |
#11
|
||||
|
||||
Si aplicando la solución de maeyanes te sigue dando error, entonces, comprueba que la línea en blanco no sea una línea de tipo: ,,,,,,,,, (es decir, donde no hubo registros o si todos fueron valores nulos que no haya una línea con solo el delimitador de campo, en este caso ",").
|
#12
|
|||
|
|||
Disculpen por no decir el error: EstringListError 'List index out of bounds (0)',
Nose como corregirlo.
__________________
____________________________ Un saludo a todos... |
#13
|
||||
|
||||
Hola,
Estoy con roman. Sobre la instrucción: ... pulsa la tecla "F5", esto es, crea un "punto de ruptura" para que el programa se detenga en ese punto al ejecutarse: eso te dará pie a averiguar (simplemente poniendo el cursor sobre la variable que precises) qué contienen las líneas del archivo, y así hacerte idea de qué está pasando y, en todo caso, qué puedes hacer para solucionar el problema. |
#14
|
||||
|
||||
Está claro que el error debe de estar en la variable "Campos" que no tiene elementos. Prueba lo siguiente:
Última edición por jmariano fecha: 17-08-2005 a las 18:47:32. |
#15
|
||||
|
||||
Hola,
Esto probablemente ocurra por andar averiguando (*) el error... lo digo porque mi anterior mensaje iba destinado a la solución de otro error y no el que mencionas. ¡Pero también puede servirte! Puedes averiguar el valor de la variable contador a cada paso por el bucle, y ver también qué está pasando en el mismo. En todo caso, creo que lo mejor sería que copiaras aquí el código al completo del bucle que te está dando problemas: probablemente a partir de éste alguien sabrá darte una solución al problema en cuestión. (*) Otrosí, nadie me obligaba a hacer de adivino. Última edición por dec fecha: 17-08-2005 a las 18:48:35. Razón: (corrección del texto) |
#16
|
|||
|
|||
Gracias a todos por responder pero e intentado todo lo que me recomendaron y sigue dandome el mismo error. Que hago
__________________
____________________________ Un saludo a todos... |
#17
|
||||
|
||||
Pon un ejemplo de los datos. Siempre con este tipo de programas se debe postear Codigo + Estructura datos + Datos ejemplo
__________________
El malabarista. |
#18
|
|||
|
|||
Gracias por responder el codigo es el siguiente;
Code: __________________________________________________________ procedure TInventarios.Button2Click(Sender: TObject); vAR Archivo,Campos: TStringList; I, J: Integer; Codigo: string; Cant : real; Linea : Integer; begin Archivo:= TStringList.Create; Campos:= TStringList.Create; try Archivo.LoadFromFile('C:\INVENTARIO.txt'); for I := 0 to Archivo.Count -1 do begin Campos.Clear; Campos.CommaText:= Archivo[i]; Codigo:= Campos[0]; Cant:= Strtofloat(Campos[1]); If (Codigo <> '') and (Cant > 0) then begin Linea:= Linea + 1; DataModule1.STOMOV.Insert; DataModule1.STOMOV.Fields[1].Value := 1; DataModule1.STOMOV.Fields[3].Value := Linea; DataModule1.STOMOV.Fields[4].Text := DateToStr(Now); DataModule1.STOMOV.Fields[5].Value := 530; DataModule1.STOMOV.Fields[7].Value := strToInt(Edit4.text); DataModule1.STOMOV.Fields[8].Text := Codigo; DataModule1.STOMOV.Fields[9].Value := Cant; DataModule1.STOMOV.Post; end; end; finally Archivo.Free; Campos.Free; end; ________________________________________________________________ Y el txt tine esta forma: _______________________________________ 802404041500080,1800, , , 802404041500080,1800, _______________________________________ Que puedo hacer?
__________________
____________________________ Un saludo a todos... |
#19
|
||||
|
||||
¿Y dónde están las condiciones de las que hemos estado hablando en todo el hilo?
Asignas Campos[0] a Codigo sin antes haber checado nada de lo que comentamos. Tanto en líneas en blanco como en líneas con sola comas, esa asignación te va a dar el error descrito. // Saludos |
#20
|
|||
|
|||
Roman, las e probado una a una, este es el codigo original.
__________________
____________________________ Un saludo a todos... |
|
|
|