(BUILDER) Rechercher dans un fichier texte

lomat62 Messages postés 6 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 avril 2006 - 12 avril 2006 à 08:31
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 12 avril 2006 à 10:35
voila mon Pb.
je doit lire un fichier texte qui conporte des donnée sur des objet

exemple de ligne:
M1 NP Tau 8.2m 6' J50 5h34.5 +22°01 N1952
M2 AG Aqr 6.5m 8' J30 21h33.5 -0°49 N7089
M3 AG CVn 6.4m 10' J30 13h42.2 +28°23 N5272
M4 AG Sco 6.0m 14' J30. 16h23.6 -26°32 N6121
M5 AG Ser 5.9m 13' J30 15h18.6 +2°05 N5904
M6 AO Sco 5.0m 25' O.N. 17h40.1 -32°13 N6405
M7 AO Sgr 3.0m 60' O.N. 17h53.9 -34°49 N6475

Les point M1, M2 ..... son afficher ds une listBox
et quan je clique sur un objet je doit avoir les coordonnée qui son mit en rouge afficher ds un Edit

Le pb c que je n'arrive pas après avoir selectionner le point a retrouver les coordonnée coorespondante au point.

Merci pour votre aide ;)

5 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
12 avril 2006 à 09:30
A priori:
- tu lis ton fichier dans un buffer,
- tu recherche dans celui-ci le nom du point sélectionné (avec strstr() par exemple)
- si tu le trouves, tu es sur la bonne ligne, donc tu la parcours jusqu'aux coordonnées

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
0
lomat62 Messages postés 6 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 avril 2006
12 avril 2006 à 09:38
void TForm1::rechercheFichtxt ()
{
ifstream entreeFichierClient("messieressai.txt",ios::in);
if (!entreeFichierClient)
{
Application->MessageBox("Ouverture du fichier impossible", "Warning");


}
char Nom[12], RA[14], DEC[14], M1[8], M2[8], M3[8], M4[8], M5[8], M6[8] ;
while (entreeFichierClient>>Nom>>RA>>DEC>>M1>>M2>>M3>>M4>>M5>>M6)
sortieLigne (Nom, RA, DEC, M1, M2, M3, M4, M5 ,M6);
}

void TForm1::sortieLigne ( const char *Nom, const char *M4, const char *M5, const char *M1, const char *M2, const char *M3, const char *RA, const char *DEC, const char *M6)
{
ListBox1->Items->Add(Nom);
}

voila ce que g fait pour l'instant pour lire le fichier texte.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 avril 2006 à 10:05
Tu seras prié de mettre (BUILDER) dans le titre de tes questions, telle que je viens de modifier celle ci. Il faut éviter de faire perdre du temps aux gens qui ne sont pas concernés.

Si tu écrivais ton prog en vrai code tu n'aurais rien à rechercher, suffirait de mettre l'offset fichier de la ligne direct dans l'itemdata de chaque entrée de la listbox et tu pointerais directement au bon endroit.

ciao...
BruNews, MVP VC++
0
lomat62 Messages postés 6 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 12 avril 2006
12 avril 2006 à 10:24
ok je mettrai builder devant mes sujet ;)

je ne comprend pas trop ta reponse tu ferais comment toi?
moi je suis debutant en programmation.

;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 avril 2006 à 10:35
Du prêt-à-l'emploi ici:
TXT VERS LISTBOX (WIN32)
http://www.cppfrance.com/code.aspx?id=25258

ne reste qu'à ajouter offset dans l'itemdata.

Tout à fait possible de vraiment coder sur Borland, exemple ici:
http://www.cppfrance.com/code.aspx?ID=28232

ciao...
BruNews, MVP VC++
0
Rejoignez-nous