Accueil > Forum > > > > recherche d'une chaine dans un fichier
recherche d'une chaine dans un fichier
lundi 27 octobre 2003 à 17:35:18 |
recherche d'une chaine dans un fichier

ymlf
|
Problème au niveau du scanf() int recherche(char *chaine,char *FileName) { int i, k; char *tmp, *tab[50], *timer[20]; FILE *svf; svf=fopen(FileName,"r"); printf("fichier ouvert"); i=0; k=0; while(fscanf(svf,"%c, [^\n]",tab[i])!=EOF)// test si ce n'est pas la fin du fichier { if(tab[i]!=" ")// recherche les espaces { tmp=strcat(tmp,tab[i]); // récupère le mot dans temp if(tmp==chaine) // test si le mot est un tag timer { if ( ( tab[i]=="(" ) && ( tab[i+1]=="\"" )) { while(tab[i]!="\"") { timer[k]=strcat(timer[k],tab[i]); i++; } k=k++; printf("\n le timer numero %c", k); printf("\n le timer %c", timer); } } i++; } } return 0; }
|
|
lundi 27 octobre 2003 à 17:43:04 |
Re : recherche d'une chaine dans un fichier

aardman
|
Salut, *tab[50] est un tableau de 50 pointeurs, pas un pointeur sur une chaine de 50 caracteres.
char tab[50]; // devrait etre mieux
|
|
lundi 27 octobre 2003 à 18:06:53 |
Re : recherche d'une chaine dans un fichier

ymlf
|
Merci exact
mais j'ai toujours une erreur au debug à while(fscanf(svf,"%c, [^\n]",tab[i])!=EOF)
|
|
lundi 27 octobre 2003 à 18:14:23 |
Re : recherche d'une chaine dans un fichier

Anacr0x
|
Je n'ai pas beaucoup regardé le code mais ya déja des choses qui saute aux yeux :
if(tmp==chaine) la tu teste les pointeurs, si tu veux faire une comparaison des chaines, utilise strcmp()
tmp=strcat(tmp,tab[i]); tu inscrit des données ds tmp (un pointeur qui pointe sur rien), fait une allocation dynamique ou utilise un tableau de char normal et puis inutile de mettre le "tmp="
k=k++; a quoi ca sert ? mettre uniquement k++;
|
|
lundi 27 octobre 2003 à 20:30:37 |
Re : recherche d'une chaine dans un fichier

Anacr0x
|
et pi : printf("\n le timer numero %c", k); k est un int, donc faut mettre un %d
printf("\n le timer %c", timer); timer est définit comme une chaine de caractère, donc %s
|
|
mardi 28 octobre 2003 à 09:15:50 |
Re : recherche d'une chaine dans un fichier

ymlf
|
merci à tous, mais malgrès tous vos coup de main ca ne marche tjs pas!
int recherche(char *chaine,char *FileName) { int i, k; char *tmp, tab[50], *timer[20]; FILE *svf; svf=fopen(FileName,"r"); printf("fichier ouvert"); i=0; k=0; while(fscanf(svf,"%c, [^\n]",tab[i])!=EOF)// test si ce n'est pas la fin du fichier { if(&tab[i]!=" ")// recherche les espaces { tmp=strcat(tmp,&tab[i]); // récupère le mot dans temp if(strcmp(tmp,chaine)) // test si le mot est un tag timer { if ( ( &tab[i]=="(" ) && ( &tab[i+1]=="\"" )) { while(&tab[i]!="\"") { timer[k]=strcat(timer[k],&tab[i]); i++; } k++; printf("\n le timer numero %c", k); printf("\n le timer %c", timer); }
} i++; } } return k; }
|
|
mardi 28 octobre 2003 à 14:16:31 |
Re : recherche d'une chaine dans un fichier

aardman
|
Salut, Ce que j'ai dit pour tab est egalement valable pour timer.
if(&tab[i]=="(") alors la tu compares l'adresse mémoire du i-eme element du tableau tab a une chaine de caractere... ca marchera jamais. if(tab[i] == ')') // ca c bon, comparaison de 2 octets avec ==
Sinon tout a fait a part, pour rechercher une chaine dans un fichier, pourquoi ne pas copier tout le fichier dans un buffer, mettre un 0 a la fin, et faire un strstr() sur le buffer ?
|
|
mardi 28 octobre 2003 à 15:54:24 |
Re : recherche d'une chaine dans un fichier

ymlf
|
Le problème est que je recherche des TAG "startimer" dans un fichier bas je voudrais récupérer ce qu'ils contiennent dans un
tableau : timer[].
int recherche(char *chaine, char *nom_scn) { int i, k; char tmp, tab[1500], timer[200], *FileName; char cheminsrc[256]=" c:\\progra~1\\scénario\\"; FILE *svf; //initialisation printf("Récupération des timers\n"); i=0; k=0; //création du chemin et ouverture du fichier strcat(nom_scn,".bas"); strcat(cheminsrc,nom_scn); strcpy(FileName,cheminsrc); /*c:/program files/scenario/nom_scn.bas*/ svf=fopen(FileName,"t"); printf("fichier source ouvert\n");
while(!(feof(svf))) // attente la fin du fichier le problème et que je ne suis pas certain que ca fonctionne avec des fichiers .bas ouvert avec
l'option t { if( tab[i] != " ") // recherche les espaces ( PB tab[i] recherche un int ? ) { strcat(tmp , tab[i]); // récupère le mot dans temp if(strcmp(tmp,chaine)) // test si le mot est un tag timer { if ( ( tab[i] == "(" ) && ( tab[i+1] == "\"" )) { while(tab[i] != "\"") { strcat(timer[k],tab[i]); i++; } k++; printf("\n le timer numero %c", k); printf("\n le timer %c", timer); } } i++; } } return 1; }
|
|
mardi 28 octobre 2003 à 16:14:58 |
Re : recherche d'une chaine dans un fichier

aardman
|
Salut, Ca sert a rien de recopier le code a chaque fois si tu corriges pas ce qui est faux. if (tab[i] == "(") // est faux. il faut mettre '('. "(" est une chaine de caractere. '(' est un octet.
Explique plutot comment trouver les tags dont tu a besoin dans tes fichiers .bas, comment on peut les repérer précisement, etc.. Ou mieux donne un bout de fichier .bas...
|
|
mardi 28 octobre 2003 à 18:21:55 |
Re : recherche d'une chaine dans un fichier

ymlf
|
En fait je cherhce à récuperer le nom des timers : ttest1 je recherche la sequence StartTimer. Puis (" recup du nom du timer jusqu'à la fermeture de la paranthèse.
En un second temps
Le script a cette tête.
Sub StartScript()
InitScript
ThinkTime ("0.750")
returnStatus = ClickOnImageRTR("scenarioRTR0.bmp", LEFT_BUTTON, 0) If returnStatus <> SUCCESS Then AbortScriptEx (SCRIPT_FAIL) Exit Sub End If
returnStatus = ClickEx(LEFT_BUTTON, TWO_CLICKS)
StartTimer ("ttest1") returnStatus = ClickEx(LEFT_BUTTON, ONE_CLICK)
....
StopTimer ("ttest1")
...
End Sub
A terme je voudrais bien verifier si le timer se ferme bien : sequence StopTimer("timer")
|
|
Cette discussion est classée dans : fichier, timer, recherche, chaine, tab
Répondre à ce message
Sujets en rapport avec ce message
récup de donnée dans un fichier text [ par ymlf ]
Je veux récupere des données dans un fichier teste qui sont contenu entre une chaine de caractere et " .Aucun problème pour des petits fichier mais j'
recherche une chaine de caractères dans un fichier [ par Tamahoma ]
Bonjour, Je voudrais rechercher une chaine de caractères dans un fichier, il prend le début de cette chaine jusqu'à ce qu'il rencontre le symbole : '>
problème lecture fichier de grande taille [ par africanwinners ]
j'ai concu ce code pour lire le contenu d'un fichier et le mettre dans un tableau à 2 dimensions: ca marche pour un fichier de petite taille:et dès qu
PROBLEME DElecture d'un fichier [ par africanwinners ]
Bonjour tout le monde j'ai fait un code qui permetde lire le contenu d'un fichier. mais il affiche un faux résultat qui ne correspond pas au fichier l
[Programme en C] Gestion d'un fichier texte dans un programme en C [ par Azshari ]
Bonjour à tous Mon problème est le suivant, j'ai un fichier .FIL que j'aimerai exploiter. Voila ce qu'on peut trouver dans ce fichier lorsqu'on l'o
recherche dans un fichier [ par langagec08 ]
bonjour, est ce ke kelk 1 pourrait me dire comment puis chercher un mot dans un fichier et faire une modification en langage c. mercii d'avance.
extraction text [ par fatenIM ]
salut à tous Mon projet consiste à écrire un programme en langage c permettant d'offrir à l'utilisateur la possibilité de faire une recherche en utili
recherche dans un fichier [ par brainniac1 ]
Salut, je voudrais savoir comment chercher un mot dans un fichier?Merci, d'avance !!!
Timer VC 2008 [ par sokotanic ]
Bonjour apres avoir casse ma tete sans resultat, je viens de pose mon probleme ici et j'espere d'avoir l'aide. sous Visual Studio 2008 - MFC, j'ai cr
Comment générer les fichier y.tab.h et y.tab.c? [ par jihado86 ]
Comment générer les fichier y.tab.h et y.tab.c à partir de Yacc?
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|