begin process at 2012 05 30 11:20:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

recherche d'une chaine dans un fichier


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

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

Membre Club
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

Membre Club
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

Membre Club
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")

1 2

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?


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,281 sec (3)

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