![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() 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... |
![]() |
|
|
![]() |
|