begin process at 2010 03 17 07:41:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Reconnaissance de chaine


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

Reconnaissance de chaine

lundi 28 janvier 2002 à 19:09:50 | Reconnaissance de chaine

Xs

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/

lundi 28 janvier 2002 à 22:33:15 | Re : Reconnaissance de chaine

Croqmort

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/


mardi 29 janvier 2002 à 09:11:53 | Re : Reconnaissance de chaine

jpeg

Juste une petite précision :
au lieu de parcourir toute la chaine comme le fait notre ami croqmort, il est possible d'utiliser les fonctions strchr (qui donne la première occurence d'un caractère) et strrchr (qui donne la dernière occurence d'un caractère).
Il suffit simplement d'inclure string.h et le tour est joué.




-------------------------------
Réponse au message :
-------------------------------

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/



mardi 29 janvier 2002 à 10:20:44 | Re : Reconnaissance de chaine

Croqmort


oui mais les fonctions strchr et strrchr utilise le meme systeme que le mien, c'est a dire, il parcour la chaine, donc autant economiser du temp de travail a l'ordi et de lui faire faire en meme temp que la recherche la copie du texte entre crochet dans la variable, avec strchr on risquerai de faire un code plus long !!

-------------------------------
Réponse au message :
-------------------------------

Juste une petite précision :
au lieu de parcourir toute la chaine comme le fait notre ami croqmort, il est possible d'utiliser les fonctions strchr (qui donne la première occurence d'un caractère) et strrchr (qui donne la dernière occurence d'un caractère).
Il suffit simplement d'inclure string.h et le tour est joué.




-------------------------------
Réponse au message :
-------------------------------

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/




mardi 29 janvier 2002 à 13:39:51 | Re : Reconnaissance de chaine

jpeg

OK ! Je veux bien croire que ta fonction est plus rapide que celle de string.h
Néanmoins, je vais te donner un conseil : utilise des pointeurs au lieu d'utiliser l'opérateur [] sans arrêt parce que ça, ça ralenti ton algo...


bool function(char* Dest,char* Src, int TailleDest,int TailleSrc)
{
int i=0,i2=0;
bool var = false;
char* pSrc=Src;
char* pDest=Dest;

while(i<TailleSrc)
{
if(*(pSrc++)=='[')
{
var = true;
i++;
continue;
}
if(*pSrc==']')
{
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var)
{
*(pDest++) = *(pSrc++);
i2++;
}
i++;
}
return false;
}





-------------------------------
Réponse au message :
-------------------------------


oui mais les fonctions strchr et strrchr utilise le meme systeme que le mien, c'est a dire, il parcour la chaine, donc autant economiser du temp de travail a l'ordi et de lui faire faire en meme temp que la recherche la copie du texte entre crochet dans la variable, avec strchr on risquerai de faire un code plus long !!

-------------------------------
Réponse au message :
-------------------------------

Juste une petite précision :
au lieu de parcourir toute la chaine comme le fait notre ami croqmort, il est possible d'utiliser les fonctions strchr (qui donne la première occurence d'un caractère) et strrchr (qui donne la dernière occurence d'un caractère).
Il suffit simplement d'inclure string.h et le tour est joué.




-------------------------------
Réponse au message :
-------------------------------

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/





mardi 29 janvier 2002 à 14:06:14 | Re : Reconnaissance de chaine

Croqmort


c'est pas vraiment que ma fonction est plus rapide que strchr, mais c surtout que ça fait pas la meme chose
sinon pour l'utilisation des [] j'avais fait ça pour que ce soit plus clair, mais c vrai que c mieux d'incrementé les pointeurs

sinon pour la suite :
> "... apres cela, il ouvre le fichier "poxima estacion : esperanza""

bah en fait c tout con j'ai pas d'aide sur les fonciton sous la mains, mais utilise "fopen"

aprés :
> "ce qui m'arrengerai, c'est que a la suite de
Manu Chao [poxima estacion : esperanza]
il y ai cela
/*
les caracteristique de l'album
*/"
tu veux ecrire ça dans ton fichier
ou tu veux qu'on lise ça dans le fichier ?
et le fichier "poxima estacion : esperanza" on en fait quoi une fois ouvert ?


-------------------------------
Réponse au message :
-------------------------------

OK ! Je veux bien croire que ta fonction est plus rapide que celle de string.h
Néanmoins, je vais te donner un conseil : utilise des pointeurs au lieu d'utiliser l'opérateur [] sans arrêt parce que ça, ça ralenti ton algo...


bool function(char* Dest,char* Src, int TailleDest,int TailleSrc)
{
int i=0,i2=0;
bool var = false;
char* pSrc=Src;
char* pDest=Dest;

while(i<TailleSrc)
{
if(*(pSrc++)=='[')
{
var = true;
i++;
continue;
}
if(*pSrc==']')
{
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var)
{
*(pDest++) = *(pSrc++);
i2++;
}
i++;
}
return false;
}





-------------------------------
Réponse au message :
-------------------------------


oui mais les fonctions strchr et strrchr utilise le meme systeme que le mien, c'est a dire, il parcour la chaine, donc autant economiser du temp de travail a l'ordi et de lui faire faire en meme temp que la recherche la copie du texte entre crochet dans la variable, avec strchr on risquerai de faire un code plus long !!

-------------------------------
Réponse au message :
-------------------------------

Juste une petite précision :
au lieu de parcourir toute la chaine comme le fait notre ami croqmort, il est possible d'utiliser les fonctions strchr (qui donne la première occurence d'un caractère) et strrchr (qui donne la dernière occurence d'un caractère).
Il suffit simplement d'inclure string.h et le tour est joué.




-------------------------------
Réponse au message :
-------------------------------

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/






mardi 29 janvier 2002 à 19:17:06 | Re : Reconnaissance de chaine

NerOcrO

MOi je dirais d'utiliser une liste chaîné dynamique pOur créer tOn prOg principal puis de parcOurir ta liste avec des pOinteurs.
COmme ça, tu peux rajOuter à ta guise tOus les titres d'albums que tu veux.
De plus, sa facilite ce que tu veux faire.


-------------------------------
Réponse au message :
-------------------------------


c'est pas vraiment que ma fonction est plus rapide que strchr, mais c surtout que ça fait pas la meme chose
sinon pour l'utilisation des [] j'avais fait ça pour que ce soit plus clair, mais c vrai que c mieux d'incrementé les pointeurs

sinon pour la suite :
> "... apres cela, il ouvre le fichier "poxima estacion : esperanza""

bah en fait c tout con j'ai pas d'aide sur les fonciton sous la mains, mais utilise "fopen"

aprés :
> "ce qui m'arrengerai, c'est que a la suite de
Manu Chao [poxima estacion : esperanza]
il y ai cela
/*
les caracteristique de l'album
*/"
tu veux ecrire ça dans ton fichier
ou tu veux qu'on lise ça dans le fichier ?
et le fichier "poxima estacion : esperanza" on en fait quoi une fois ouvert ?


-------------------------------
Réponse au message :
-------------------------------

OK ! Je veux bien croire que ta fonction est plus rapide que celle de string.h
Néanmoins, je vais te donner un conseil : utilise des pointeurs au lieu d'utiliser l'opérateur [] sans arrêt parce que ça, ça ralenti ton algo...


bool function(char* Dest,char* Src, int TailleDest,int TailleSrc)
{
int i=0,i2=0;
bool var = false;
char* pSrc=Src;
char* pDest=Dest;

while(i<TailleSrc)
{
if(*(pSrc++)=='[')
{
var = true;
i++;
continue;
}
if(*pSrc==']')
{
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var)
{
*(pDest++) = *(pSrc++);
i2++;
}
i++;
}
return false;
}





-------------------------------
Réponse au message :
-------------------------------


oui mais les fonctions strchr et strrchr utilise le meme systeme que le mien, c'est a dire, il parcour la chaine, donc autant economiser du temp de travail a l'ordi et de lui faire faire en meme temp que la recherche la copie du texte entre crochet dans la variable, avec strchr on risquerai de faire un code plus long !!

-------------------------------
Réponse au message :
-------------------------------

Juste une petite précision :
au lieu de parcourir toute la chaine comme le fait notre ami croqmort, il est possible d'utiliser les fonctions strchr (qui donne la première occurence d'un caractère) et strrchr (qui donne la dernière occurence d'un caractère).
Il suffit simplement d'inclure string.h et le tour est joué.




-------------------------------
Réponse au message :
-------------------------------

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/







mardi 29 janvier 2002 à 20:30:27 | Re : Reconnaissance de chaine

Xs



En fait, la deuxieme solution est independante de la premiere : c''est soit la premiere soit la deuxieme.

j'avoue que je preferais la seconde car ca m'eviterais d'avoir 300 fichiers de caracteristiques si j'ai 300 albums....



-------------------------------
Réponse au message :
-------------------------------

MOi je dirais d'utiliser une liste chaîné dynamique pOur créer tOn prOg principal puis de parcOurir ta liste avec des pOinteurs.
COmme ça, tu peux rajOuter à ta guise tOus les titres d'albums que tu veux.
De plus, sa facilite ce que tu veux faire.


-------------------------------
Réponse au message :
-------------------------------


c'est pas vraiment que ma fonction est plus rapide que strchr, mais c surtout que ça fait pas la meme chose
sinon pour l'utilisation des [] j'avais fait ça pour que ce soit plus clair, mais c vrai que c mieux d'incrementé les pointeurs

sinon pour la suite :
> "... apres cela, il ouvre le fichier "poxima estacion : esperanza""

bah en fait c tout con j'ai pas d'aide sur les fonciton sous la mains, mais utilise "fopen"

aprés :
> "ce qui m'arrengerai, c'est que a la suite de
Manu Chao [poxima estacion : esperanza]
il y ai cela
/*
les caracteristique de l'album
*/"
tu veux ecrire ça dans ton fichier
ou tu veux qu'on lise ça dans le fichier ?
et le fichier "poxima estacion : esperanza" on en fait quoi une fois ouvert ?


-------------------------------
Réponse au message :
-------------------------------

OK ! Je veux bien croire que ta fonction est plus rapide que celle de string.h
Néanmoins, je vais te donner un conseil : utilise des pointeurs au lieu d'utiliser l'opérateur [] sans arrêt parce que ça, ça ralenti ton algo...


bool function(char* Dest,char* Src, int TailleDest,int TailleSrc)
{
int i=0,i2=0;
bool var = false;
char* pSrc=Src;
char* pDest=Dest;

while(i<TailleSrc)
{
if(*(pSrc++)=='[')
{
var = true;
i++;
continue;
}
if(*pSrc==']')
{
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var)
{
*(pDest++) = *(pSrc++);
i2++;
}
i++;
}
return false;
}





-------------------------------
Réponse au message :
-------------------------------


oui mais les fonctions strchr et strrchr utilise le meme systeme que le mien, c'est a dire, il parcour la chaine, donc autant economiser du temp de travail a l'ordi et de lui faire faire en meme temp que la recherche la copie du texte entre crochet dans la variable, avec strchr on risquerai de faire un code plus long !!

-------------------------------
Réponse au message :
-------------------------------

Juste une petite précision :
au lieu de parcourir toute la chaine comme le fait notre ami croqmort, il est possible d'utiliser les fonctions strchr (qui donne la première occurence d'un caractère) et strrchr (qui donne la dernière occurence d'un caractère).
Il suffit simplement d'inclure string.h et le tour est joué.




-------------------------------
Réponse au message :
-------------------------------

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/








mardi 29 janvier 2002 à 23:34:14 | Re : Reconnaissance de chaine

Croqmort


bon j'ai encore fait ça sans compilateur alors c pas sur que ça marche !
pour que ça fonctionne il faut que tu fasse passer un pointeur dans 'Src' qui pointe vers le debut de la chaine ou tu veux trouver les caracteristique de l'album
faut aussi que tu fasse passsé dans Dest un pointeur vers une zone de memoire alloué et dont tu fait passer la taille en argument 'TailleDest'
bool function2(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
int etat = 0;
char* pSrc=Src;
char* pDest=Dest;
char c;

while(i<TailleSrc){
switch(etat){
case 0:
if(*(pSrc++)=='/')) etat = 1;
break;
case 1:
if(*(pSrc++)!='*')) etat = 0;
else etat = 2;
break;
case 2:
if((c=*(pSrc++))=='*')) etat = 3;
else{
if(i2>=TailleDest) return false;
*(pDest++) = c;
i2++;
}
break;
case 3:
if((c=*(pSrc++))=='/')) return true;
else{
if(i2>=TailleDest) return false;
*(pDest++) = '*';
i2++;
if(i2>=TailleDest) return false;
*(pDest++) = c;
i2++;
etat = 2;
}
break;

}
}
return false;
}

-------------------------------
Réponse au message :
-------------------------------



En fait, la deuxieme solution est independante de la premiere : c''est soit la premiere soit la deuxieme.

j'avoue que je preferais la seconde car ca m'eviterais d'avoir 300 fichiers de caracteristiques si j'ai 300 albums....



-------------------------------
Réponse au message :
-------------------------------

MOi je dirais d'utiliser une liste chaîné dynamique pOur créer tOn prOg principal puis de parcOurir ta liste avec des pOinteurs.
COmme ça, tu peux rajOuter à ta guise tOus les titres d'albums que tu veux.
De plus, sa facilite ce que tu veux faire.


-------------------------------
Réponse au message :
-------------------------------


c'est pas vraiment que ma fonction est plus rapide que strchr, mais c surtout que ça fait pas la meme chose
sinon pour l'utilisation des [] j'avais fait ça pour que ce soit plus clair, mais c vrai que c mieux d'incrementé les pointeurs

sinon pour la suite :
> "... apres cela, il ouvre le fichier "poxima estacion : esperanza""

bah en fait c tout con j'ai pas d'aide sur les fonciton sous la mains, mais utilise "fopen"

aprés :
> "ce qui m'arrengerai, c'est que a la suite de
Manu Chao [poxima estacion : esperanza]
il y ai cela
/*
les caracteristique de l'album
*/"
tu veux ecrire ça dans ton fichier
ou tu veux qu'on lise ça dans le fichier ?
et le fichier "poxima estacion : esperanza" on en fait quoi une fois ouvert ?


-------------------------------
Réponse au message :
-------------------------------

OK ! Je veux bien croire que ta fonction est plus rapide que celle de string.h
Néanmoins, je vais te donner un conseil : utilise des pointeurs au lieu d'utiliser l'opérateur [] sans arrêt parce que ça, ça ralenti ton algo...


bool function(char* Dest,char* Src, int TailleDest,int TailleSrc)
{
int i=0,i2=0;
bool var = false;
char* pSrc=Src;
char* pDest=Dest;

while(i<TailleSrc)
{
if(*(pSrc++)=='[')
{
var = true;
i++;
continue;
}
if(*pSrc==']')
{
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var)
{
*(pDest++) = *(pSrc++);
i2++;
}
i++;
}
return false;
}





-------------------------------
Réponse au message :
-------------------------------


oui mais les fonctions strchr et strrchr utilise le meme systeme que le mien, c'est a dire, il parcour la chaine, donc autant economiser du temp de travail a l'ordi et de lui faire faire en meme temp que la recherche la copie du texte entre crochet dans la variable, avec strchr on risquerai de faire un code plus long !!

-------------------------------
Réponse au message :
-------------------------------

Juste une petite précision :
au lieu de parcourir toute la chaine comme le fait notre ami croqmort, il est possible d'utiliser les fonctions strchr (qui donne la première occurence d'un caractère) et strrchr (qui donne la dernière occurence d'un caractère).
Il suffit simplement d'inclure string.h et le tour est joué.




-------------------------------
Réponse au message :
-------------------------------

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/









jeudi 31 janvier 2002 à 21:10:14 | Re : Reconnaissance de chaine

Xs



J'ai bien sur oublie de dire : c bien de la lire mais j'aimerais pouvoir l'afficher !!
en temps normal, je sais comment on fais et surtoutquel est la variable mais la....

voici la parti de mon code de recherche :

bool rechercher() /*L'algo de recherche a été elaboré par Croqmort et jpeg de cppfrance.com*/
{
char c ;
char car[255];
char lookfor[255];

logo2;
aopen = fopen("DB.dcl","r");
if (aopen == NULL)
{
MessageBox (NULL, "DBCD n'a pu ouvrir le fichier \"DB.dcl\".
Si c'est la premiére fois que vous lancez DBCD, vous devez d'abord ajouter une entré." , "Erreur", 0 + MB_ICONHAND);
exit(0);
}
cout << "\n\nEntrez le nom de l'album recherh\202 : \n";
red;
cin.getline(lookfor,255);
cin.getline(lookfor,255);

char* Dest;
char* Src;
int TailleDest;
int TailleSrc;
int i=0,i2=0;
bool var = false;
char* pSrc=Src;
char* pDest=Dest;

while(i<TailleSrc)
{
if(*(pSrc++)=='[')
{
var = true;
i++;
continue;
}
if(*pSrc==']')
{
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var)
{
*(pDest++) = *(pSrc++);
i2++;
}
i++;
}
return false;

cout << "\nCA PASSE\n" ;
cout << Dest;
}

bien sur, ni le "CA PASSE" et ni le Dest ne s'affichent !
j'avoue que je ne comprend pasle fonctionnement de votre algo.

-------------------------------
Réponse au message :
-------------------------------


bon j'ai encore fait ça sans compilateur alors c pas sur que ça marche !
pour que ça fonctionne il faut que tu fasse passer un pointeur dans 'Src' qui pointe vers le debut de la chaine ou tu veux trouver les caracteristique de l'album
faut aussi que tu fasse passsé dans Dest un pointeur vers une zone de memoire alloué et dont tu fait passer la taille en argument 'TailleDest'
bool function2(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
int etat = 0;
char* pSrc=Src;
char* pDest=Dest;
char c;

while(i<TailleSrc){
switch(etat){
case 0:
if(*(pSrc++)=='/')) etat = 1;
break;
case 1:
if(*(pSrc++)!='*')) etat = 0;
else etat = 2;
break;
case 2:
if((c=*(pSrc++))=='*')) etat = 3;
else{
if(i2>=TailleDest) return false;
*(pDest++) = c;
i2++;
}
break;
case 3:
if((c=*(pSrc++))=='/')) return true;
else{
if(i2>=TailleDest) return false;
*(pDest++) = '*';
i2++;
if(i2>=TailleDest) return false;
*(pDest++) = c;
i2++;
etat = 2;
}
break;

}
}
return false;
}

-------------------------------
Réponse au message :
-------------------------------



En fait, la deuxieme solution est independante de la premiere : c''est soit la premiere soit la deuxieme.

j'avoue que je preferais la seconde car ca m'eviterais d'avoir 300 fichiers de caracteristiques si j'ai 300 albums....



-------------------------------
Réponse au message :
-------------------------------

MOi je dirais d'utiliser une liste chaîné dynamique pOur créer tOn prOg principal puis de parcOurir ta liste avec des pOinteurs.
COmme ça, tu peux rajOuter à ta guise tOus les titres d'albums que tu veux.
De plus, sa facilite ce que tu veux faire.


-------------------------------
Réponse au message :
-------------------------------


c'est pas vraiment que ma fonction est plus rapide que strchr, mais c surtout que ça fait pas la meme chose
sinon pour l'utilisation des [] j'avais fait ça pour que ce soit plus clair, mais c vrai que c mieux d'incrementé les pointeurs

sinon pour la suite :
> "... apres cela, il ouvre le fichier "poxima estacion : esperanza""

bah en fait c tout con j'ai pas d'aide sur les fonciton sous la mains, mais utilise "fopen"

aprés :
> "ce qui m'arrengerai, c'est que a la suite de
Manu Chao [poxima estacion : esperanza]
il y ai cela
/*
les caracteristique de l'album
*/"
tu veux ecrire ça dans ton fichier
ou tu veux qu'on lise ça dans le fichier ?
et le fichier "poxima estacion : esperanza" on en fait quoi une fois ouvert ?


-------------------------------
Réponse au message :
-------------------------------

OK ! Je veux bien croire que ta fonction est plus rapide que celle de string.h
Néanmoins, je vais te donner un conseil : utilise des pointeurs au lieu d'utiliser l'opérateur [] sans arrêt parce que ça, ça ralenti ton algo...


bool function(char* Dest,char* Src, int TailleDest,int TailleSrc)
{
int i=0,i2=0;
bool var = false;
char* pSrc=Src;
char* pDest=Dest;

while(i<TailleSrc)
{
if(*(pSrc++)=='[')
{
var = true;
i++;
continue;
}
if(*pSrc==']')
{
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var)
{
*(pDest++) = *(pSrc++);
i2++;
}
i++;
}
return false;
}





-------------------------------
Réponse au message :
-------------------------------


oui mais les fonctions strchr et strrchr utilise le meme systeme que le mien, c'est a dire, il parcour la chaine, donc autant economiser du temp de travail a l'ordi et de lui faire faire en meme temp que la recherche la copie du texte entre crochet dans la variable, avec strchr on risquerai de faire un code plus long !!

-------------------------------
Réponse au message :
-------------------------------

Juste une petite précision :
au lieu de parcourir toute la chaine comme le fait notre ami croqmort, il est possible d'utiliser les fonctions strchr (qui donne la première occurence d'un caractère) et strrchr (qui donne la dernière occurence d'un caractère).
Il suffit simplement d'inclure string.h et le tour est joué.




-------------------------------
Réponse au message :
-------------------------------

si tu veux juste lire ce qu'il y'as entre crochet tu peut faire :

bool function(char* Dest,char* Src, int TailleDest,int TailleSrc){
int i=0,i2=0;
bool var = false;

while(i<TailleSrc){
if(Src[i]=='['){
var = true;
i++;
continue;
}
if(Src[i]==']'){
var = false;
return true;
}
if(i2>=TailleDest) return false;
if(var) Dest[i2++] = Src[i];
i++;
}
return false;
}

pi tu fait un truc dans le meme genre pour les caracteristique de l'album

j'ai pas tester le code, je me suis laissé porter par l'imagination

-------------------------------
Réponse au message :
-------------------------------

vala, j'ai ecrit dans un fichier a l'aide d'un prog les lignes suivantes :

Manu Chao [poxima estacion : esperanza]

eh bien je voudrai qu'il lise cette chaine et que il mette en memoire tout ce qui est entre crochets. apres cela, il ouvre le fichier
"poxima estacion : esperanza"

ce qui m'arrengerai, c'est que a la suite de

Manu Chao [poxima estacion : esperanza]

il y ai cela

/*
les caracteristique de l'album
*/

pour donner ca :

Manu Chao [poxima estacion : esperanza]
/*
les caracteristique de l'album
*/

Manu Chao1 [poxima estacion : esperanza1]
/*
les caracteristique de l'album 1
*/

Manu Chao2 [poxima estacion : esperanza2]
/*
les caracteristique de l'album 2
*/











1 2

Cette discussion est classée dans : caracteristique, manu, poxima, estacion, esperanza


Répondre à ce message

Sujets en rapport avec ce message

chaine de caractére+ansistring [ par gogeta2003 ] Salut voici mon problème. char *donnees; strcpy(donnees,"e;1.2;45;manu"); typedef struct {   AnsiString val;   float t; int k;   AnsiString t


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

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

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