Salut à tous,
Je vous expose mon problème en espérant que des pros de la lecture de fichiers puissent m'aiguiller !
Je souhaite lire un fichier de traduction des textes de mon jeu, il a un format très simple :
identifiant1=texte1 identifiant2=texte2 etc...
Du coup j'ai une classe Translation avec une méthode loadTextData qui s'occupe d'ouvrir le fichier, de lire caractère par caractère puis de stocker les traductions dans une map définie telle que :
Notez bien le stringw utilisé pour que les chaînes unicode soient gérées.
Seulement voila, j'ai beau lire et relire mon code, je ne vois pas ce qui cloche. J'affiche toujours dans la console des adresses mémoire au lieu du texte. Pourtant, si je change le stringw en stringc, mon texte s'affiche bien (mais mal encodé si il y a des caractères accentués).
Donc si quelqu'un a déjà rencontré des problèmes de ce type avec stringw, je suis toute ouïe. Merci d'avance
Dernière modification par Metallizer (15-03-2011 11:06:03)
Hors ligne
Je ne saurais pas te dire d'où vient le problème, mais déjà, je pense que parcourir le fichier par caractère n'est pas la meilleure solution.
Tu manipules ton fichier à l'aide d'un flux wifstream, utilise donc les opérateurs de flux >> et << . Ca nécessite une petite transformation de tes fichiers, par exemple tu considères que l'identifiant est le numéro de ligne (ce que je fais, et je stocke tout dans un tableau au lieu d'une map), auquel cas, tu peux directement récupérer ta valeur avec
(Peut être une étape intermédiaire en passant par un tableau de wchar_t)
Ou alors, si tu tiens vraiment à ton identifiant, tu peux faire une ligne sur deux (value/identifier), mais je ne suis pas sûr que ce soit vraiment une bonne idée.
Hors ligne
Oui justement, c'est le fait d'avoir identifiant=valeur qui fait que je voulais lire caractère par caractère, ça permettait de savoir si au moment du premier égal trouvé, on passe de l'identifiant à la valeur dans l'analyse.
A la rigueur je peux transformer mon traitement pour qu'à chaque ligne récupéré par les opérateurs de flux, j'analyse aussi caractère par caractère...
Merci pour ton intervention ^^
Hors ligne