Chercher une donnée dans un fichier texte !! De l'aide !!

nakounet Messages postés 3 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 10 mai 2003 - 10 mai 2003 à 15:40
jerbe Messages postés 11 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 4 juillet 2005 - 30 mai 2005 à 14:32
Je vous en suplie ! je vais devenir fou si personne ne m'aide !!

voilà je suis en train de faire un carnet d'adresse évolué !! là je fais la fonction rechercher ! mais j'y arrive pas, voici comment est organisé le fichier texte en séquence :

========================
NOM : XX
PRENOM : YYY
TEL : 006
========================
NOM : uu
PRENOM : bbb
TEL : 007
========================

je voulais faire une fonction rechercher :
qui je rentre un nom par exemple XX parcours le fichiers texte et renvoi le numéro de tel : 006

si quelqu'un pourrai m'aider !!!

merci !!

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 mai 2003 à 15:50
C'est Win32 en mode graphique ?
Structure fichier est 1 info par ligne ?
BruNews, ciao...
0
nakounet Messages postés 3 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 10 mai 2003
10 mai 2003 à 16:14
le programme est sous Visual C++, en mode DOS, une info par ligne dans 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
10 mai 2003 à 16:22
tu pouvais difficilement faire pire comme format de fichier, acces direct impossible, si on change de phone faudra tout passer dans un temp etc...
le mode DOS, c'est pour Vercingetorix.
Mets en graphique dans des listes et tu pourras indexer.
BruNews, ciao...
0
nakounet Messages postés 3 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 10 mai 2003
10 mai 2003 à 16:51
Je sais, ce projet devait etre fait exclusivement en mode DOS, mais je crois que j'aurai du écrire le fichier en mode par bloc pour utiliser l'accés direct.
Mais là j'aurais plus la possibilté de formatter les données.

Il est vrai que l'accés direct est plus approprié que l'acces séquentiel, j'ai hésité.

mais là j'ai la flème de tout refaire!!!!
0

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

Posez votre question
jerbe Messages postés 11 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 4 juillet 2005
30 mai 2005 à 14:21
Simple :
Tout d'abord les "NOM" "PRENOM" et "TEL" ne servent à rien si tu met une info par ligne.
Je te propose le modele suivant :
(je met mes infos persos sauf le numéro qui est bidon)

======================================
Jerbe
Jer
0800800800800
======================================

Voila !

Tu ouvre ton fichier texte.
tu lit les lignes une à une, et tu fait un strcmp pour savoir ce qu'elle contienent.
Puis si tu as trouvé, bein tu lit ce qu'il y a après !

le code :

#include <stdio.h>
#include <windows.h>


char Num_tel[90];
char prenom[90];



// ne touche pas à ce qu'il y a dans cette routine :


//==============================================================================
// ReadLineFile
//==============================================================================
// appel : buf est un pointeur sur une chaine de caractères pour la ligne lue
// hdl est le handle du fichier à lire
//
// retour : 0 si erreur (FALSE)
// -1 si EOF (fin de fichier)
// 1 si pas d'erreur


int ReadLineFile(HANDLE hdl, char *buf)
{ DWORD nread;
register BOOL no_error;
register char *c;

c = buf;
no_error = TRUE;
do no_error = no_error && ReadFile(hdl, c, 1, &nread, NULL);
while((*c++ != '\n') && (no_error) && (nread != 0));
*--c = '\0';
if(*--c '\r') *c '\0';
if(no_error && nread) return 1;
if(!no_error) return 0;
return -1;
} /* ReadLineFile() */

//==============================================================================
// fin du ReadLineFile
//==============================================================================



// ensuite dans ta routine de recherche :

int recherche(HWND hwnd)
{

HANDLE fichier; // handle de ton fichier texte
char Ligne[90]; // contenue de la ligne lue

// ouverture du fichier avec la fonction CreateFile


fichier = CreateFile("trucmachin.txt", // chemin du fichier
GENERIC_READ, 0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);


while(ReadLineFile(fichier, Ligne) > 0) // tant qu'il y a un texte dans la ligne, on l'enregistre dans Ligne
{
// on compare la ligne avec le texte que l'on cherche :

if(strcmp(Ligne, "Jerbe") == 0) // si le contenue de la ligne c'est Jerbe
{
ReadLineFile(fichier, prenom); // on sauvegarde le prénom
ReadLineFile(fichier, Num_tel); // on sauvegarde le numéro de telephone
} // if

} // while




} // int recherche


voila !!! c'est tout ! le prénom est enregistré dans prenom et le numéro est enregistré dans Num-tel.
Pour executer la fonction recherche tu fait :
recherche(hwnd);

Bon je te préviens, j'ai pas testé ! alors il se peut qu'il y ai des bugs !!


Jerbe

je suis à l'affut !
0
jerbe Messages postés 11 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 4 juillet 2005
30 mai 2005 à 14:22
bein c'est quoi ce bordel ? y a pa ue de retour à la ligne !!!!

Jerbe
je suis à l'affut !
0
jerbe Messages postés 11 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 4 juillet 2005
30 mai 2005 à 14:32
désolé pour le probleme !!!!
va voir ma source : http://cppfrance.com/code.aspx?ID=31707

c'est la meme chose


je suis à l'affut !
0
Rejoignez-nous