Convertir un retour chariot Unix en retour chariot Windows

Convertir un retour chariot Unix en retour chariot Windows - C++ - Programmation

Marsh Posté le 20-12-2004 à 13:22:44    

Bonjour,  
 
Je travaille actuellement sous Redhat 9, avec le compilateur g++. J'ai créé une ptite classe StringList, qui contient une liste de string à la manière du TStringList de C++ Builder. J'ai développé des méthodes LoadFromFile, et SaveToFile...  
 

Code :
  1. void StringList::SaveToFile(string nom_fichier)
  2. {
  3. std::ofstream fe (nom_fichier.c_str());
  4. int i;
  5. if(fe!=NULL)
  6. {
  7.    i=0;
  8.    while(i<this->Count)
  9.    {
  10.       fe << this->Strings[i].c_str() << "\r\n";
  11.       i++;
  12.    }
  13. }
  14. fe.close();
  15. }


 
Les fichiers que je convertis avec mon application sont utilisés en entrée d'une autre application, sous Windows. Cette application sous Windows est un modèle de simulation, et a été développée il y a fort longtemps... et il ne parvient pas à lire mes fichiers textes créés sous Unix ! Il fonctionne un peu de la même manière que le simple notepad de Windows, et ne reconnait pas les retours chariots... donc ça me pose des problèmes, car je ne peux absolument pas changer le modèle de simulation.  
 
 
J'ai donc tenté :  
 
- \n : c'est reconnu comme des caractères spéciaux  
 
- \r\n : c'est reconnu comme des retours chariots, avec des caractères spéciaux au milieu. D'ailleurs si j'ouvre mon fichier sous vi j'ai :  

ligne1:^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M  
ligne2:^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M  
ligne3:^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M  
ligne4:^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M  
ligne5:^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M  
ligne6:^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M  
ligne7:^M^M^M^M^M^M^M^M^M^M^M^M^M^M^M  
ligne8:^M^M^M^M^M^M^M^M^M^M^M^M^M^M  
ligne9:^M^M^M^M^M^M^M^M^M^M^M^M^M  
etc

c'est louche quand meme !  
 
- std::endl; : ce n'est pas reconnu comme des retours chariots  
 
 
Peut-être est-il nécessaire que je passe par une application extérieure sous Unix, pour convertir ces foutus retours chariots ?!! Ou y'a-t'il d'autres méthodes pour écrire correctement mes fichiers ?...
 
Merci pour vos suggestions !  :)

Reply

Marsh Posté le 20-12-2004 à 13:22:44   

Reply

Marsh Posté le 20-12-2004 à 15:18:07    

je dirais de mettre \n dabs les 2 cas, et faire les transferts inter-plateformes par ftp en mode texte pour convertir les retours chariots


---------------
-( BlackGoddess )-
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed