Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/12/2014, 05:51
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: Generar archivo con codificacion Windows-1252

Cita:
Iniciado por lareto Ver Mensaje
Ah, no reparé en

Entonces, estás abriendo el oftream en modo "binario", ¿verdad? Entonces la secuencia debería ser al revés:
ofs.write(&RetornoCarro,1); // \r
ofs.write(&NuevaLinea,1); // \n

Pero, para escribir texto, me parece que es mejor abrir el ofstream en modo texto, y usar <<.
Bueno, primera equivocación por mi parte.
Por falta de atención, al hacer copia/pega de la función que guarda el archivo en modo binario no corregí eso y efectivamente me estaba escribiendo en binario.
Por otro lado, entre esa acertada observación y la posterior recomendación de escribir en el fichero mediante el operador << ya funciona.

Sólo he tenido que hacer otra pequeña modificación, y aprovecho para preguntarla:
Yo tenía definido los caracteres especiales así:
Código C++:
Ver original
  1. char NuevaLinea=10;
  2.     char RetornoCarro=13;
  3.     char FinDeArchivo=26;

Sin embargo esto también me estaba ocasionando problemas, y finalmente sólo he añadido "\r\n" (retorno de carro+nueva linea) para que por fin el fichero sea legible.

Entonces aprovecho para preguntar que diferencia hay entre una cosa y la otra.

Y finalmente te muestro el código que SI funciona
Código C++:
Ver original
  1. std::string registroT="~T|";
  2.     registroT.append(concepto->datonodo.LeeCodigo());
  3.     registroT.append("|");
  4.     registroT.append(concepto->datonodo.LeeTexto());
  5.     registroT.append("|");
  6.     ofs<<registroT;
  7.     ofs<<"\r\n";

(Por cierto, que gedit de esta forma me detecta la codificacion ISO-8859-15 y fin de línea Linux, pero el caso es que funciona)

Saludos y gracias!
__________________
Mi calculadora en Qt