Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

problema con bancos (N43)

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: problema con bancos (N43) Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¿Has probado con StringReplace?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.