IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] [POCKET PC] Pb écriture dans un fichier


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut [MFC] [POCKET PC] Pb écriture dans un fichier
    Salut !

    J'essaye d'écrire le contenu d'une liste dans un fichier texte mais seul le premier caractère de la première ligne est écrit ... pour les autres je ne sais pas où ils sont.

    Voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    	CFile			myFile;
    	CString			szMessage1, szMessage2;
     
    	if( !myFile.Open(_T("toto.txt"), CFile::modeCreate | CFile::modeReadWrite | CFile::typeBinary) )
    	{
    		szMessage1.Format(_T("Erreur"));
    		AfxMessageBox(szMessage1, MB_OK, NULL);
    	}
    	else
    	{
    		szMessage1.Format( _T("Fichier ouvert") );
    		AfxMessageBox(szMessage1, MB_OK, NULL);
     
    		for(int nLoop=0; nLoop<this->m_objListOfBrands.GetCount(); nLoop++)
    		{
    			this->m_objListOfBrands.GetText(nLoop, szMessage1);
     
    			szMessage2.Format(_T("%s avec %d caractères va être écrit"), szMessage1, szMessage1.GetLength());
    			AfxMessageBox(szMessage2, MB_OK, NULL);
     
    			myFile.Write(szMessage1, szMessage1.GetLength());
    			myFile.Flush();
    		}
     
    		myFile.Close();
    	}
    Pour info, le code est compilé en UNICODE.

    Merci pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    avec quoi LIS-tu le fichier?

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut Re: [MFC] [POCKET PC] Pb écriture dans un fichier
    Citation Envoyé par Yellowmat
    Salut !

    J'essaye d'écrire le contenu d'une liste dans un fichier texte mais seul le premier caractère de la première ligne est écrit ... pour les autres je ne sais pas où ils sont.

    Pour info, le code est compilé en UNICODE.

    Merci pour votre aide
    salut normal , tu es en UNICODE un caractere visible est codé sur 16 bits et non 8 bits...


  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Ah oui, dans le write, il faut multiplier getLength() par sizeof(TCHAR)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    Ok, mais peut être y a t'il un autre problème. Je rappelle : j'ai 5 lignes à écrire, je fais ma boucle et au final uniquement le premier caractère de la première ligne est écrit ... alors pourquoi le premièr caractères des autres lignes ne sont pas aussi écrits ?

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    comment tu le verifies ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    Justement j'étais en train de me demandé si j'utilisais la bonne méthode pour vérifier

    Pour le moment je vais dans le répertoire où est crée mon fichier .txt je clique simplement dessus puis il s'ouvre et je constate qu'il n'y a qu'un seul caractère affiché dedans ... mais bon, je ne sais pas si c'est la bonne façon de faire.

    Par contre ce que je ferais ce soir en modifiant mon code, c'est de vérifier le contenu de mon fichier en lisant directement dedans depuis mon application et non pas depuis l'explorateur de documents.

    Est ce que normalement je ne devrais pas voir le contenu de mon fichier depuis l'explorateur de documents ?

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Comme c'est un fichier unicode 16bits, il faut être sûr d'avoir un programme de lecture qui supporte ça...

    Au pire, tu essaies d'ouvrir le .txt dans FireFox, et tu vérifies ensuite dans Affichage->encodage des caractères...

    PS: Quelle est la taille en octets du fichier, quand tu demandes ses propriétés?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    Méa coulplu ! Je n'ai pas vérifier l'hypothèse selon laquelle l'application que j'utilise est apte à lire des documents textes encodés en UNICODE.

    J'avais un doute sur ce sujet ... mais étant donnée que les applications sont toutes compilées en UNICODE par défaut je me suis dit que les applications pré installées sur le pocket pc devaient être capable de lire aussi en UNICODE.

    Je vais vérifier tout ça ce soir tranquillou puis je mettrais le flag résolu en conséquence.

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    un autre point la CString avec GetLength() renvoie le nombre de caractere de la chaine pas sa taille réelle.
    il faudra certainement faire ce que t'a indiqué Médinoc dans le post précédent.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 225
    Points : 118
    Points
    118
    Par défaut
    De toute façon quand j'aurais terminé je mettrais le résultat en dernier post et pour conclure le tag RESOLU

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour

    Je rencontre le meme probleme. Grace aux réponses précédentes, j'ai pu remarquer que PocketWord ne lis pas l'unicode (alors qu'il me semblait que tout les développements pocket pc devait etre fait en Unicode... (pardonnez ma seconde de mécontentement)). Comme l'exemple ci dessus, le fichier n'affiche que le premier caractère, mais lorsque je le copie/converti sur mon pc fixe (sous Win XP), le bloc note affiche le texte complet (grace au *sizeof(TCHAR)) avec des espaces entre chaque caractère, et firefox l'affiche avec un caractère inconnu entre les autres.

    Bon, je suis déjà content que le résultat n'ait pas disparu, mais comment faire pour afficher ce texte sur le pocket PC?

    Je suis loin d'etre un expert, mais je suppose qu'il va faloir écrire ce fichier autrement qu'en Unicode, non?

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/08/2005, 11h57
  2. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  3. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  4. Passer à la ligne lors de l'écriture dans un fichier
    Par hams dans le forum Assembleur
    Réponses: 4
    Dernier message: 17/04/2005, 19h25
  5. [JUnit] Junit écriture dans un fichier
    Par mikael35 dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 10/08/2004, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo