begin process at 2010 02 10 10:45:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Recherche chaine de caractères dans un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recherche chaine de caractères dans un fichier

mercredi 14 janvier 2004 à 11:26:08 | Recherche chaine de caractères dans un fichier

Arkadius

Bon j'ai été bcp plus explicite et précis dans mon poste précédant mais l'envoie de celui-ci à foiré, alors en bref.

J'écris des chaines de caractères dans un fichier texte. Puis je souhaite lire ces chaines de caractère ( pour vérifier si la chaine saisie dans le programme existe dans le fichier ).


Actuellement j'arrive à le faire avec des chaines de longueur fixe mais je souhaiterais que la longueur ouisse être variable.

Dès que les chaines sont de longueur variable l'accès séquentiel au fichier décale tout et je ne retrouve plus mes chaines de car.

Pourriez vous m'aider ?

Je souhaite pouvoir écrire des chaines de n'importe quelle longueur et retrouver ces chaines dans le fichier grace à la fonction strcmp.

Voici le code correspondant à l'écriture et à la lecture dans le fichier:


void ecriture_fichier() //fonction pour ajouter un profil

{
char p[7], reponse[3];
fichier = fopen("c:\\\\profil.dat","a+"); /* pointeur a la fin */
printf("\\nVoulez-vous enregistrer votre profil?\\n");
gets(reponse);
if ((strcmp(reponse,"oui")==0)
{system("cls");
printf("\\nVotre profil doit faire 6 caracteres\\n");
gets(p);
while (strlen(p)!=6)
{
puts ("votre rofil doit faire 6 caracteres");
gets(p);
}
}


fputs(p,fichier);
} //Fin ecriture fichier




//Lecture

system("cls");
puts("Recharche du profil");
temps();
while(((fgets(q,7,fichier))!=NULL)&&(trouve==0))
if(strcmp(profil,q)==0)trouve = 1;
mercredi 14 janvier 2004 à 12:05:01 | Re : Recherche chaine de caractères dans un fichier

gagaet22

Et si tu utilisais fscanf ???
mercredi 14 janvier 2004 à 13:38:59 | Re : Recherche chaine de caractères dans un fichier

vecchio56

Administrateur CodeS-SourceS
-écris d'abord un entier qui contient la longeur de la chaine puis la chaine elle meme, pour savoir combien d'octets lire par la suite.
-si tu travailles sous Windows, utilises la fonction WriteFile qui permet de vérifier le nombre d'octets écrits

mercredi 14 janvier 2004 à 21:10:58 | Re : Recherche chaine de caractères dans un fichier

Arkadius

En écrivant d'abord la longueur de la chaine le fichier sera de toute manière lu de manière séquentielle avec cette longueur définie.

J'ai essayé avec fscanf de cette manière (extrait du code )

void site()
{

char titi[80];


if ((fichier = fopen("c:\\\\test.dat","r")) == NULL)
printf("Impossible d'ouvrir le fichier profil\\n");
else
{
while(fscanf(fichier,"%s_",titi) != EOF)
printf("%s\\n",titi);





Jusqu'ici ca fonctionne très bien le fichier est parcouru et le printf affiche toutes les chaines

MAIS dans le bout de code qui suit ca foire, quoi que je fasse la comparaison entre la chaine saisie et stockée dans char nom[20] //variable globale et la variable titi ne se fait pas




if (strcmp(nom,titi)==0)
{puts ("tout va bien");
getch();} else
fclose(fichier);
getch();
}
}




help
mercredi 14 janvier 2004 à 21:23:39 | Re : Recherche chaine de caractères dans un fichier

gagaet22

Tiens... Mais essaye en utilisant une réference !!!!
fscanf(Fichier, "%s" &Titi);
mercredi 14 janvier 2004 à 22:14:07 | Re : Recherche chaine de caractères dans un fichier

Arkadius


Pardon, ce que tu appelles réference c'est le "&" c'est ca ?

Si c'est ca alors je l'avais mis dans le code ss resultat...

Par contre comme précisé dans le poste ci-dessus, le fscanf lit le fichir mon problème c'est plutot la comparaison de ce qu'il lit avec la variable saisie dans le programme.

Voici les étapes du prog:


1) J'écris des chaines dans le fichier test.txt
2) Dans mon prog je demande à l'utilisateur de saisir un profil ( char nom[20] )
3) Je verifie dans le fichier s'il existe une chaine qui correspond à ce qui a été saisie ( nom )
4) Sii ca existe alors le prog se poursuit


voilà


Quoi qu'il en soit je te remercie de m'aider ( je débute... j'ai attaqué le c hier soir )

Merci bcp
mercredi 14 janvier 2004 à 22:16:44 | Re : Recherche chaine de caractères dans un fichier

vecchio56

Administrateur CodeS-SourceS
& n'est pas une référence mais l'adresse, ca n'a rien a voir
A part ca je ne vois pas ton pb, puisuae tu arrives bien a lire les chaines, tu fais ensuite un strcmp si ca rend 0 c'est que c'est égal


mercredi 14 janvier 2004 à 22:47:58 | Re : Recherche chaine de caractères dans un fichier

gagaet22

Tout à fait vecchio56, j'ai dit une belle connerie.

Sinon pour toi Arkadius : Regarde si c est pas parce que tu compare un char[20] avec un char[80], je crois pas mais essaye qd meme....
mercredi 14 janvier 2004 à 22:51:52 | Re : Recherche chaine de caractères dans un fichier

Arkadius


Je dois merder quelque part voici le code de ma fonction dans sa totalité: ( Les chaines de caractères dans le test.txt sont séparées par un espace )



void site()
{

char titi[80];
char nom[15];



puts("Saisissez votre nom");
gets(nom);

if ((fichier = fopen("c:\\\\test.dat","r")) == NULL)
printf("Impossible d'ouvrir le fichier profil\\n");
else
{
while ( fscanf(fichier,"%s ",&titi)!= EOF)


if (strcmp(titi,nom)==0)
{puts ("tout va bien");
getch();} else

getch();


}

fclose(fichier);
}





Si vous pouvez m'aider n'hesitez pas

Merci beaucoup
mercredi 14 janvier 2004 à 23:25:42 | Re : Recherche chaine de caractères dans un fichier

gagaet22

Tiens ca peut t aider à mieux cerner le prob....
Moi, j ecris une chaine de caractere puis je passe à la ligne....
Pour un petit fichier ca change rien meme si c est pas trés économ.. Mais bon c est plus clair à lire !!!


//ecriture d une ligne
fprintf(pFichierTXT,chaine);fprintf(pFichierTXT,"\\n");

Et ca change rien pour la lecture!!!

Est ce que tu utilise un debug ??? si c est pas le cas, vu que tu debute juste, je te le conseille!!!! (conseil d un debutant à un debutant). Tu controle les valeurs juste avant la comparaison, ca élimine des types d erreurs !!!

1 2

Cette discussion est classée dans : fichier, chaine, chaines, longueur, profil


Répondre à ce message

Sujets en rapport avec ce message

lire une chaine de caractere dans un fichier et la camparer aux autres chaines dans le meme fichier [ par leiloula ] j'ai pa pu programmé un truc qui me permet de lire une chaine de caractere dans un fichier et la camparer aux autres chaines dans le meme fichier et v traitement d'un fichier [ par boualiasma ] Salut,J'ai un fichier texte bien formé contient deux champs: objet et attribut.tous les objets sont des entiers et tous les attributs sont de chaines Concaténation de deux chaines de caractères par surchage d'opérateur [ par laurentdav ] Je n'arrive pas à surcharger l'opérateur + afin de concaténer deux chaîne de caractères au sein d'une classe. Il est à noter que je ne veux pas utilis deconcatenation de chaine [ par malouve ] Bonjour, j'ai un fichier txt à traiter en C, ayant plusieurs fichiers, j'entre le chemin du fichier au clavier, je voudrais en sortie, avoir un fich tri alphabétique ultra rapide de chaines de caractères de longueur variable [ par mslider ] -- Bonjour, je sais que c'est un forum dédié au C mais je vais parler de pascal. En effet je connais bien ce langage et je l'ai utilisé pour trier a divser une chaine de caractere [ par boualiasma ] Bonjour, J'ai un fichier contenant deux champs: objet (chaine de caractère) et valeur(chaine de caractère) ces deux champs sont séparés par deux poin c++ [ par zizota ] bonjour,j'ai un tp pour implémenter l'algorithme de hachage md5 en c++.Je suis débutante en c++.Je doit écrire une classe qui permet de:    -ajouter u aide traitement du fichier [ par boualiasma ] J'ai un fichier qui se compose de deux champs : - numero présenté par un entier - attribut présenté par une chaine caractère. On a la même taille po position d'une chaine de caractére dans un fichier ecriture et lecture [ par yanlou ] salut, bon voila je veux mettre les chaine de caractére d'un fichier dans un autre fichier, j'utilise le code suivant :#include #include #include # récuperer des données numérique dans fichiers [ par snakers07 ] bonjour, j'essaye de réaliser un chargement de fichier, pour cela je dois parcourir le tableau afin d'en soutirer que les informations numériques c'es


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales