Bonjour, mon problème est que j'ai un fichier texte avec plein de données (lettres+chiffres). J'aimerai récupérer une zone (une chaine) dans ce fichier pour l'afficher dans un EditBox.
SVP, dites moi comment je dois procéder ?
A bientôt !
![]()
Bonjour, mon problème est que j'ai un fichier texte avec plein de données (lettres+chiffres). J'aimerai récupérer une zone (une chaine) dans ce fichier pour l'afficher dans un EditBox.
SVP, dites moi comment je dois procéder ?
A bientôt !
![]()
c est surement dans la FAQ
http://cpp.developpez.com/faq/bcb/?p...neslirefichier
loadfromfile et edit1->Text=
Merci bien cedni, mais mon problème n'est pas d'afficher un seul caractère dans l'EditBox.
Je voudrais afficher plusieurs caractères se trouvant dans le milieu du fichier texte (connaissant la position de ces caractères) par exemple.
Besoin d'aide svp !
![]()
pour un fichier text le mieux c'est la TStringList
si ta d'autre question sur la stringlist hesite pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 TStringList *slList = new TStringList(); // creation de la list slList->LoadFromFile("fichier.txt"); //charge le fichier dans la list //ensuite on affiche le ligne 10 par exemple dans l'edit Edit1->Text = slList->Strings[10]; delete slList; //delete de la list
chaque ligne de ton fichier correspond a une string dans ta stringlist
Cordialement Baxter
OK, j'ai bien compris la solution de Baxter67, mais je suis pas sûr que ça soit cela qu'il me faut.
Est ce que je peux vous montrer mon code, ça sera plus facile pour comprendre ce que je veux ?
bien sur envoie nous le code
c'est toujours plus parlant
Cordialement Baxter
Alors voila le code lorsque j'appuie sur ouvrir le fichier :
Et dans le fichier :
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 char buf [65535]; FormClient->EditNom->Refresh(); fichier = fopen(DOC.c_str(), "r+"); if(fichier==NULL ) { ShowMessage("erreur open"); } fread (buf,(size_t)1,sizeof (buf),fichier); FormClient->EditNom->Text = buf de 11 à 14;
TYPE F: ST
ratp
1071208
(en rouge ce que ca doit afficher dans l'EditBox)
De plus, je pense que ce fichier doit sauter des lignes (par exemple entre ST et ratp) quand je l'ouvre avec notepad++ donc peut etre qu'il y a une fonction pour ça, mais quand je l'ouvre avec bloc notes c'est tout à la suite.
Comprend pas
esseye de le charger dans uns stinglist et apres tu fais un
et dis nous combien ta de ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2int iNbr = slList->Count;
Si tu n'utilise plus le contenu de ton buffer après avoir mis le texte dans ton Edit tu peut mettre ceci :
sinon tu peut faire une copie de ton buf dans un autre buffer pour gardé en mémoire le contenu du fichier et faire la même chose que précédemment mais avec le buffer de copie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 buf[15] = 0x00; FormClient->EditNom->Text = buf[11];
pour notepad++ et notepad, la différence doit être qu'il n'interprètent pas de la même façon les \n et \r
moi je resterais sur l'idée du string list
la charger dans un ansistring et apres utiliser les methode de l'ansistring comme par exemple substring
sa serais pe etre plus simple que de travailer avec des buffer
je sais pas trop
cordialement Baxter
Bon j'ai fait ce qu'a dit Baxter et j'obtiens 261 lignes, et après en avoir supprimées j'en ai toujours 261.
![]()
C'est OK les gars, merci beaucoup pour votre aide, j'ai retenu la solution de Baxter (désolé Pottiez) et ça roule.
A bientôt j'éspère !
![]()
Tu n'as pas as être désolé, je ne fait que proposer une solution, si celle de Baxter te convient c'est parfais![]()
Partager