(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
21041
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
15256
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
17 mai 2022
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
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
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
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
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