Caractères bizarres dans mon EditBox

Résolu
romydamour Messages postés 30 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 6 juillet 2005 - 7 juin 2005 à 18:49
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 7 juin 2005 à 19:51
salut tout le monde,[visualC++, API win32]
j'ai un problème avec la récupération du contenu d'un fichier texte puis son insertion dans une boite d'édition. En fait le code ci dessous me permet de faire ça, mais il copie également, à la suite, dans mon EditBox des caractères bizarres (iiiiiiiii'y'yy'y'y'y'y'yY'Y'Y'Y''Y'Y'Y'Y'Y......), Et aussi il me met au début de mon texte une sorte de Pipe épais ( | ). C'est sans doute un problème avec mon tableau mais je ne vois pas comment le résoudre!
je ne vois pas pourquoi, si quelqu'un a déjà rencontré cette situation, ca m'aiderait beaucoup


Code:
,
----

FILE * fichier1;//déclaration du flux
long lSize1;
char * Texte1;
char szTexte1 [TAILLE_BUFFER];//Là où est stocké le chemin du fichier à lire

//ouverture du fichier en mode lecture
fichier1 = fopen(szTexte1, "r");

//si le fichier n'existe pas, il quitte le programme
if (fichier1==NULL) exit (1);

//renvoie la taille du fichier
fseek (fichier1 , 0 , SEEK_END);
lSize1 = ftell (fichier1);

// place le pointeur du fichier au debut
rewind (fichier1);

);//allocation de la memoire pour stocker le fichier
texte1 = (char*) malloc (lSize1);

//si le buffer ne contient rien alors ca quitte
if (texte1 == NULL) exit (2);

//copie le fichier dans le buffer
(texte1,1,lSize1,fichier1);

//affiche a l'écran le contenu du buffer
SetWindowText(GetDlgItem(hwndDlg, IDC_CONTENT2), texte1);

fclose (fichier1);//fermeture du flux
free (texte1);//vide le buffer

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 juin 2005 à 19:51
une chaine doit TOUJOURS finir par un terminateur NULL, grace à cela que SetWindowText saura quoi insérer donc faut l'ajouter en fin de buffer quand tu lis ton fichier (allouer lenFichier + 1).

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 juin 2005 à 18:57
le ZERO final en fin de buffer ?

ciao...
BruNews, MVP VC++
0
romydamour Messages postés 30 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 6 juillet 2005
7 juin 2005 à 19:28
Excuse moi mais je ne maitrise pas du tout, je ne vois pas ce que tu veut dire par le ZERO final en fin de buffer,
0
romydamour Messages postés 30 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 6 juillet 2005
7 juin 2005 à 19:38
Est-ce que ca serait un truc de ce style?

int i = 0;

while(*Texte1 != '"')
{
szTexte1[i++] = *Texte1++;
}
szTexte1[i] = 0;
0
Rejoignez-nous