wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 1

Valid XHTML 1.0 Transitional

Valid CSS2

Menu Snippets (navigation):
Pages: 1    Accueil » Snippets » Fichiers - Dossiers - Disques
» [wxTextOutputStream] : maitriser les fins de lignes Unix/Windows/Mac
Détails du snippet : [wxTextOutputStream] : maitriser les fins de lignes Unix/Windows/Mac
Informations sur l'auteur de ce snippet :


Hors ligne
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1369
Snippets: 25
Tutoriels: 6
Introduction / Description :
Bonjour à tous.

Il peut être utile, parfois, de forcer le type de fins de lignes lors de l'écriture d'un fichier texte.

La classe wxTextOutputStream est (entre-autres) prévue pour cela.

Il suffit de lui donner le bon paramètre lors de sa création, et le tour est joué.

Les différentes possibilités sont :
- wxEOL_NATIVE : fins de lignes en fonction de l'OS courant
- wxEOL_DOS : fins de lignes type Dos/Windows (CrLf)
- wxEOL_MAC : fins de lignes type Mac (Cr uniquement)
- wxEOL_UNIX : fins de lignes tyme Unix (Lf uniquement)
Contenu du snippet :
Voici donc une méthode pour écrire plusieurs lignes dans un fichier texte en spécifiant le type de retours chariots que l'on souhaite obtenir :

Code wxWidgets:

// Création du fichier
wxFileOutputStream f_out(_T("fichier.txt"));
// Création d'un wxTextOutputStream pour envoyer des lignes de texte au
// wxFileOutputStream avec les fins de lignes Unix
wxTextOutputStream t_out(f_out, wxEOL_UNIX);
//On peut maintenant écrire quelques lignes de texte dans le fichier
t_out << _T("La prog C++ avec wxWidgets") << endl;
t_out << _T("C'est vraiment trop cool !") << endl;
t_out << _T("Et ça se fait les doigts dans le nez...") << endl;
t_out << _T("Beuuurk !") << endl;


Voici maintenant une méthode pour convertir un fichier existant :

Code wxWidgets:

// Ouverture du fichier à traduire avec un wxFileInputStream
wxFileInputStream f_in(_T("original.txt"));
// Création d'un wxTextInputStream à partir du wxFileInputStream
wxTextInputStream t_in(f_in);
// Création du fichier final avec un wxFileOutputStream
wxFileOutputStream f_out(_T("traduction.txt"));
// Création d'un wxTextOutputStream à partir du wxFileOutputStream
// Avec le paramètre permettant de spécifier le type de retours chariots que l'on veut
wxTextOutputStream t_out(f_out, wxEOL_DOS);
 
// On lit toutes les lignes du fichier source
// et on les passe au fichier destination
while (!f_in.Eof())
{
    t_out << t_in.ReadLine() << _T("\n");
}
Explications finales :
A noter que la valeur wxEOL_NATIVE est la valeur par défaut, et qu'il n'est donc pas obligatoire de la spécifier.
Dans ce cas, la création du wxTextOutputStream se résumérait à:

Code wxWidgets:

wxTextOutputStream t_out(f_out);


@+, et bonne prog à tous.

Xav'
Commentaires

Il n'y a pas encore de commentaire pour ce snippet.
Menu Snippets (navigation):
Pages: 1    Accueil » Snippets » Fichiers - Dossiers - Disques
» [wxTextOutputStream] : maitriser les fins de lignes Unix/Windows/Mac