FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
tstringlist y nulos
Hola a todos.
Mi duda es la siguiente, estoy utilizando un metodo el cual publico roman para el tratamiento de archivos csv, utilizando 2 tstringlist, en este hilo http://www.clubdelphi.com/foros/show...ight=%2Acsv%2A Luego de hacerle unas modificaciones a este, dado que el archivo que debo tomar esta separado por tabuladores, me encuentro que el archivo tiene campos nulos, es decir, aparecen dos o mas tabuladores seguidos, y al contar los campos de forma manual son 26 pero el stringlist en su propiedad count solo dice que ahi 23 y analizando veo que los que estan con nulos no los toma. Ademas hice modificaciones como modificando la propiedad referente a informacion duplicada, pero no sigue igual, el problema es que si no me toma estos nulos se me corren los campos a insertar y me salta una excepcion por tipo de valores no compatibles. Podrian ayudarme con este problema, a todos gracias.
__________________
Optimus Prime |
#2
|
||||
|
||||
Estaría bien que nos pusieras el código modificado, coo mínimo para verlo.
__________________
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. |
#3
|
||||
|
||||
Aqui esta el codigo con las infimas modificaciones
El condicional en el cual pregunto por cuantos campos tiene el segundo tstringlist es porque en el archivo que proceso, viene un encabezado el cual no se debe procesar, ademas alguno similar a este se encontraria en otras partes del archivo, aqui pongo una muestra del archivo que estoy procesando: 00000MOVIMIENTOS 1086 1086000005080 0000000000001 NOE 21221662 1 9026 2005/08/29 2002/01/21 1969/12/31 19:00:00 570110 1027 00000061543 2 890934479 294999.00 570110 1005 00002462367 2 70546209 0 1086 1086000005080 0000000000001 NOE 21221662 2 9026 2005/08/29 2002/01/21 1969/12/31 19:00:00 570110 1027 00000061543 2 890934479 318461.00 570110 1006 00007976678 2 15365232 0 Espero esta vez si haya mas informacion con la cual me puedan ayudar con este problemita.
__________________
Optimus Prime |
#4
|
||||
|
||||
Puedes realizar un "preproceso" antes de obtener los campos para cambiar las dos tabulaciones que vengas seguidas por otro valor.
Por ejemplo, cuando encuentres #9#9 (dos tabulaciones) lo modificas por #9$$$#9. De ésta forma tendrás en número de campos completo, pero los nulos vendrán con valor $$$; Luego es cuestión de detectarlos y añadirlos como nulos. No se si me he explicado bien; Algo así (no lo he compilado, así que tal vez haya algun error, pero espero que la idea se entienda):
NOTA: He intentado resaltar el texto nuevo, y no si se ve peor o mejor...
__________________
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. Última edición por Neftali [Germán.Estévez] fecha: 17-11-2005 a las 10:18:21. Razón: Resaltar código nuevo |
#5
|
||||
|
||||
Hola neftali
Gracias por tu respuesta, lastima que cuando llego ya habia hecho otra cosa para solucionarlo, pero veo que lo que muestras ahi es excelente para resolver mi problema. Les cuento que hice para solucionar el problemita: Acudi a torrynet y mediante la busqueda, encontre una compenente para tratar archivos csv llamada PBParsers la cual FWS Aunque tuve que hacer unas pequeñas cosillas para el tratamiento de mi archivo por la peculiaridad que este no tiene como promera fila el encabezado de las columnas si no otra cosa, pueden ver esto en una de las respuestas anteriores. Esta componente si me reportaba cuando habia un campo nulo en la fila a procesar. De nuevo muchas gracias Neftali, lastima que para esta vez no pueda utilizar esa solucion. Sera para una proxima vez.
__________________
Optimus Prime |
|
|
|