watch_3754
Messages postés3Date d'inscriptionmardi 9 décembre 2003StatutMembreDernière intervention 1 mars 2005
-
1 mars 2005 à 15:30
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 2008
-
3 mars 2005 à 21:28
On se demande pourquoi c'esst la section "Au secours" qui est la plus remplie ^^
Voila le probleme, je travaille sur des fichiers qui ne sont pas des tableaux, qui n'ont rien de caractéristiques, ce sont des fichiers tt ce qu'il y a de plus con vu qu'ils sont générés aléatoirement. Cependant dans chaque fichier généré se trouve UNE CHAINE DE CARACTERE identique pour tous (0x47654E65526154694F6E) (la chaine peut varier mais on s'en fout pour le moment je pose la question pour 1seule chaine dans un seul fichier)
Donc dans tout cet enchainement de caracteres (toujours différents) cette chaine reste la meme mais placée a des endroits du FICHIER differents (je rappelle que je bosse sur des fichiers et que les string ne font que changer par conséquent :'().
Ce que je cherche a faire c'est de rechercher cette chaine dans tt le fichier, qu'on m'affiche unn message (genre "TROUVEE") et que le pointeur se deplace de 8characteres apres le 0x47...
J'ai tt essayé les strcmp ,les strstr, mais a chauqe fois meme probleme (conv CHAR to CONST CHAR gna gna gna...) Je suis ouvert a tte proposition du moment qu'elle est claire (pas du msdn svpppppppppppp lol).
watch_3754
Messages postés3Date d'inscriptionmardi 9 décembre 2003StatutMembreDernière intervention 1 mars 2005 1 mars 2005 à 16:25
Ah bah comme ca c'est mieux...je comprends plus rien,je vois meme pas où est ton code pour rechercher une chaine dans un fichier....en plus comme y'a pas de commentaires :'(
ca peu pas se faire en 5-6 lignes ce truc la ??
dletozeun
Messages postés546Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention 9 janvier 20081 1 mars 2005 à 18:06
grrrr il merde de plus en plus souvent ce serveur....
Moi ce que je ferais c'est:
je stocke la chaine de caractere dasn une chaine du genre:
char mot[]="0x47654E65526154694F6E";
avec fgetc() je recupere les caracteres du fichiers un a un en les comparant avec le premier caractere de mot grace a un pointeur placé sur ce premier caractere:
char*p=mot;
si le caractere recupéré dans le fichier correspond au premier caractere de mot alors on incremente de l'adresse du pointeur pour tester le 2eme caractere : p++;
et ainsi de suite si a un moment le caractere extrait du fichier differe de mot alors on reinitialise le pointeur et on recommence
Sinon si ton fichier n'est pas trop gros tu peut essayer de le recuperer entierement dans une chaine...ce sera bcp plus pratique...
J'espere avoir bien compris ton probleme..
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 1 mars 2005 à 18:12
Mais si le fichier est gros sera raison de plus pour ne pas le lire octet par octet, impensable un logiciel procédant ainsi, y aurait souvent le sablier sur l'écran.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 1 mars 2005 à 18:43
On aspire par passe de 32 Ko par exemple, on cherche la suite d'octets, on replace le pointeur de fichier en arriere à chaque passe de la longueur de chaine recherchée, tout cela en boucle tant que le ficheir fournit des octets (non EOF), en somme comme dans mon exemple c'est vitesse assurée.