Programación General > C++ Builder
Leer De Un Fichero Para Grabar En Otro
okap:
Muchas gracias por todo voy a probar si me funciona.
Eternal Idol:
De nada pero ... ¿Entonces era asi? ¿El primer archivo tenia todo en una sola linea?
okap:
No exactamente, verás el primer archivo es así:
#!A1#DC
#IMSR54.02/24.98
#HV50
#ERN0
#T16.26 #J13.55
#YIR43/ÿ@ þ( þ' þ& þ% þ$ þ# þ" þ! þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ! þ@ þ" þ@ þ $ þ) þ#G
#T01.44 #J19.64 #YN100/0/42///Texto de prueba#G
Y de la forma que necesito que quede es la siguiente:
#!A1
#DC
#IMSR54.02/24.98
#HV50
#ERN0
#T16.26
#J13.55
#YIR43/ÿ@ þ( þ' þ& þ% þ$ þ# þ" þ! þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ! þ@ þ" þ@ þ $ þ) þ#G
#T01.44
#J19.64
#YN100/0/42///Texto de prueba#G
Podrás observar que en el segundo archivo cada instrucción que empieza por # queda en una linea.
El problema está en que no consigo al crear el segundo fichero que la instrucción que ves con simbolos raros se me copie. Por eso me he planteado lo de leerlo en binario.
La idea es dejar el segundo fichero tal cual está el primero pero con la única diferencia de que necesito que cada instrucción que empieza por # quede en una única línea. Por cierto no hagas caso a #G, que verás al final de cada línea ya que eso no me interesa, solo si me encuentro con # seguido de cualquier cosa que no sea una G.
El problema es que con el tema de copiar ficheros al buffer y tratar ficheros en general, sobre todo en modo binario no estoy muy puesto. Te agradecía mucho, si te es posible, que me aclarases un poco la manera de afrontarlo.
Muchas gracias por todo.
Eternal Idol:
Yo suelo usar la API de Windows pero igual te paso el codigo del ejemplo que hice para probar el codigo que te pase (uso binario que es lo logico):
--- Código: Text --- FILE *orgF = fopen("Orig.txt", "rb");if (orgF){ fseek(orgF, 0, SEEK_END); //vamos hasta el final del archivo long orgSize = ftell(orgF); //obtenemos posicion y por ende tamaño rewind(orgF); //volvemos al comienzo char *buffer = (char*)malloc(orgSize); fread(buffer, orgSize, 1, orgF); //llenamos el buffer con el archivo char *orgPtr = buffer; //ya podemos procesar el texto
Obviamente supongo que son archivos de texto cortos ...
okap:
Muchas gracias. Me ha funcionado perfectamente para lo que quería.
Me ha sido de gran ayuda.
Un saludo.
Navegación
[*] Página Anterior
Ir a la versión completa