probleme d'affichage dans une listbox - C++ - Programmation
Marsh Posté le 09-04-2005 à 14:06:01
dans ton fichier texte tu as ceci:
jule\r\nmarc\r\npaul..
La fonction fgets lis tout jusqu'au moment qu'il trouve un \n.
Donc le petit carré que tu vois, c'est le \r.
Solution:
1)Soit tu change ton fichier pour avoir: jule\nmarc (pas facil avec windows)
2)Tu supprime le dernier caractère de lectureMotcle
Marsh Posté le 09-04-2005 à 14:49:33
ok je te remercie, je vais plustot partir vers la suppression du dernier caractere mais je bloque.
mon code:
strcpy(lectureMotcle,lectureMotcle-2);
ca ne marcha pas du tout comprend pas, je cherche..........
Marsh Posté le 09-04-2005 à 15:59:50
vincent0 a écrit : dans ton fichier texte tu as ceci: |
n'importe quoi, ca sert à quoi l'ouverture en mode texte pour les E/S standard ? parce que la représentation binaire d'un fichier texte dépend du système
sous windows c'est \r\n mais en C c'est \n, donc en binaire tu auras \r\n mais en mode texte \n, seulement la listbox de l'api windows attend \r\n donc la solution c'est d'etre cohérent et d'utiliser l'api windows pour lire le fichier.
Marsh Posté le 09-04-2005 à 16:34:47
ha ok, donc faut que j'ouvre le fichier et que je le lise avec les api windows, j'ai trouvé ca :
BOOL ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD NumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
HFILE OpenFile(
LPCSTR lpFileName, // pointer to filename
LPOFSTRUCT lpReOpenBuff, // pointer to buffer for file information
UINT uStyle // action and attributes
);
Marsh Posté le 09-04-2005 à 16:43:53
pour etre coherent oui, si tu ouvre ton fichier en binaire avec la stdio ca marchera egalement
Marsh Posté le 09-04-2005 à 16:46:36
A mon humble avis, la class CListBox n'attend pas de retour chariot du tout à la fin de de ses chaînes de caractères.
Mais je peux me tromper...
Marsh Posté le 09-04-2005 à 17:12:35
oui tout a fait, d'ailleur mon probleme est pas reglé et quand je veux ajouter un item et le sauvegarder dans un fichier c'est la meme chose, forcement car je suis oblifé aller a la ligne sinon ca fait une seule ligne contenant tout les mots a la suite.
comment virer ce satané de retour chariot venant du fichier pour afficher dans la listbox que le mot ?
Marsh Posté le 09-04-2005 à 17:39:49
strrchr renvoi un pointeur sur la derniere occurence d'un caractere, donc en binaire ou avec l'api windows mets '\0' à la place du \r en fin de ligne
ou
Code :
|
j'avais pas vu que tu faisais du c++, ya std::ifstream, lit un std::string avec std::getline
Marsh Posté le 09-04-2005 à 18:47:33
ro ba merci skerlter ca marche, c'est exactement ce que je voulais , je cherchais de mon coté avec strchr mais en effet ton code est correct.
merci l'ami
Marsh Posté le 09-04-2005 à 13:43:43
bonjour,
Je suis sous windows Xp pro Sp2 et je suis sous borland.
J'ai un probleme d'affichage dans une liste box.
Je veux recuperer une liste de mot dans un fichier texte et ensuite les afficher dans une listbox.
La liste de mot est de type:
jule
marc
paul
ect...
Lors de l'affichage dans la list box, le retour charriot est interpreter commme un caractere(sorte de rectangle noir).
Voici mon code:
une idée ?
merci d'avance