none
Sauvegarder contenu edit control dans un fichier txt RRS feed

  • Question

  • Bonjour,

    Je souhaiterais enregistrer le contenu d'un edit control dans un fichier texte voici mon code :

    if(fsave.DoModal()==IDOK){ GetDlgItemText(IDC_EDIT1,str); HANDLE create = CreateFile(fsave.GetPathName(),GENERIC_WRITE,

    FILE_SHARE_READ,NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(create == INVALID_HANDLE_VALUE){ MessageBox(_T("Impossible de créer le fichier")); } else { CFile myFile(create);

    myFile.Write(str,str.GetLength()); myFile.Close(); } }

    Mon code fonctionne bien mais mon problème c'est qu'il ne sauvegarde pas toute la valeur de l'edit control, mais une partie avec des espaces entre chaque caractères, je pense qu'il y a un problème au niveau du Write quand je fais str.GetLenght(). Je remplace cette instruction par 1000 par exemple il me met tout le contenu de l'edit control mais avec un lien relatif vers une dll derriere avec des caractères bizarres...

    Merci de votre aide !



    dimanche 16 décembre 2012 14:40

Réponses

  • je ne sais pas si c'est du unicode...

    C'est de là que vient le problème.

    Votre programme, comme la majorité des programmes maintenant, utilise des caractères au standard unicode. Ce jeu de caractère permet de représenter les caractères accentués, asiatiques, etc. Dans un objet CString, chaque caractère unicode est représenté par deux octets. C'est pour ça que le texte est tronqué dans le fichier car vous supposez qu'un caractère = un octet, comme en ascii.

    Vous pouvez soit comprendre ce qu'est unicode et comment l'utiliser, soit revenir dans le monde antique où les programmes ne fonctionnent pas avec des caractères exotiques en modifiant l'option de compilation "jeu de caractères" dans le menu Projet/Propriétés/Général.

    mardi 18 décembre 2012 14:14
    Auteur de réponse

Toutes les réponses