| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Jue 08 May, 2014 8:16 am Asunto: problema con bancos (N43) |
|
|
Ya hace años que hice una pequeña aplicación para hacer asientos contables automáticos desde los archivos bancarios de movimientos N43. Pero desde hace un tiempo tengo problemas con bankia y hasta ayer no me di cuenta cual era el error.
La forma de trabajar es leer el archivo de texto plano desde un StringList con loadfromfile y desde ahí analizar linea a linea. La cantidad de txts puede ser desde unas docenas a miles, dependiendo de entidad y del tiempo que queramos guardar los datos. Algunas entidades te pasan 1 archivo diario por cuenta y otras 1 al mes con todas las cuentas incluidas
El problema está en que bankia, desde hace unos meses, pone algún que otro carácter null (0x00) y claro, el loadfromfile se corta. Y el 0x00 no está ni en todos los txts ni en el mismo lugar de la linea.
He pensado en hacer una rutina que lea primero carácter a carácter y si pilla un 0x00 cambiarlo por un 0x20 (espacio) y guardar a disco, pero se hace lento.
Mi consulta: ¿alguna forma de cambiar el 0x00 por 0x20 que sea rápido? Sería mejor guardar el cambio en los txts y así solo se usaría la rutina cuando el user vea resultados raros en la lectura normal
Gracias y saludos |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Sab 10 May, 2014 8:56 am Asunto: |
|
|
Hola Angel.
Si que he probado el stringreplace pero hay un problema.
Lo que ha cargado el loadfromfile está mal ya que "pueden" faltar datos a partir del 0x00 y aunque algunas veces el stringreplace sería buena opción, no sirve en todas y ademas no me puedo fiar de guardar el resultado en disco para que la próxima vez el 0x00 no esté puesto que igual el string está cortado
Gracias Angel
Saludos |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
bosoft Master

Registrado: 23 Oct 2005Mensajes: 342
|
Publicado: Sab 10 May, 2014 6:06 pm Asunto: |
|
|
| Angel escribió: | | Se me ocurre que vayas leyendo el fichero carácter a carácter con un fread y si encuentras un NULL lo cambies por un espacio. |
eso es lo que estoy haciendo, pero como dije en el post inicial, en la carpeta, pueden haber una burrada de ficheros y leerlos todos puede costar mucho.
Lo que preguntaba es si alguien conocía una forma mas rápida que no fuese byte a byte
Muchas gracias Angel
Saludos |
|
| Volver arriba |
|
 |
|