Problème : Mon prog ne marche pas.
Fermé
EL barto !
Messages postés
121
Date d'inscription
samedi 25 octobre 2008
Statut
Membre
Dernière intervention
7 août 2009
-
30 oct. 2008 à 23:29
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 31 oct. 2008 à 21:44
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 31 oct. 2008 à 21:44
26 réponses
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
31 oct. 2008 à 18:57
31 oct. 2008 à 18:57
moi je comprend pas pourquoi tu modifie ton programme dans cette partie...
la tu fais bien des strncmp( &chaine[u], fin, taille ) mais dans ton code final quand tu mixe les deux programme tu fais strncmp( buffer[50000], fin, taille ) pourquoi enlevé le & ?
while ( u < strlen( chaine ) && ok == 0 ) { // Si on trouve debut dans la chaine saisie if ( strncmp( &chaine[u], debut, taille ) == 0 ) { u = u + taille; taille = strlen( fin ); // On cherche maintenant la chaine fin while ( u < strlen( chaine ) ) { sous_chaine[indice] = chaine[u]; // Si on trouve la chaine fin... if ( strncmp( &chaine[u], fin, taille ) == 0 ) { // ...on enregistre l'indice sous_chaine[indice] = '\0'; // ...on sort ok = 1; break;
la tu fais bien des strncmp( &chaine[u], fin, taille ) mais dans ton code final quand tu mixe les deux programme tu fais strncmp( buffer[50000], fin, taille ) pourquoi enlevé le & ?
EL barto !
Messages postés
121
Date d'inscription
samedi 25 octobre 2008
Statut
Membre
Dernière intervention
7 août 2009
6
31 oct. 2008 à 19:01
31 oct. 2008 à 19:01
POUrquoi je modifie ?
ha la la :)
Si je le savais. Je pense que si je remplace chaine par buffer,
-chaine représente la chaine de caractère total dans le programe 2
-buffer représente l'espace mémoire alloué à la lecture des 50 000 caractère.
Donc je me suis dit qu'il fallait que ces deux variable n'en soit qu'une dans le programme.
Mais peut être que je ne devrait pas. TU as essayé sans modifier?
ha la la :)
Si je le savais. Je pense que si je remplace chaine par buffer,
-chaine représente la chaine de caractère total dans le programe 2
-buffer représente l'espace mémoire alloué à la lecture des 50 000 caractère.
Donc je me suis dit qu'il fallait que ces deux variable n'en soit qu'une dans le programme.
Mais peut être que je ne devrait pas. TU as essayé sans modifier?
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
31 oct. 2008 à 19:05
31 oct. 2008 à 19:05
je peux pas tester ton programme j'ai pas la lib ;)
EL barto !
Messages postés
121
Date d'inscription
samedi 25 octobre 2008
Statut
Membre
Dernière intervention
7 août 2009
6
31 oct. 2008 à 19:06
31 oct. 2008 à 19:06
Aïe !
tu ne devrais pas sortir à poil !:)
tu ne devrais pas sortir à poil !:)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
31 oct. 2008 à 19:08
31 oct. 2008 à 19:08
ben j'ai pas encore eu a utiliser le C sur des page web c'est pour ça ;)
mais essaye et tu verras bien ça change quelquechose
mais essaye et tu verras bien ça change quelquechose
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
31 oct. 2008 à 21:44
31 oct. 2008 à 21:44
En fait je ne comprends pas pourquoi tu as deux programmes. J'ai déjà fait plusieurs programmes utilisant libcurl (entre autre pour exploiter dans mes programmes des résultats des recherches sur google).
Il suffit d'une fonction qui te télécharge le code source de la page et qui te l'écrit dans un char*.
Après tu n'as qu'à parcourir ce char* dans ta main (ou dans une autre fonction appelée depuis la main).
Je ne voudrais pas que tu te décourages mais ta "while if while if", pour ma part je la trouve tellement laide que je n'ai pas envie de me pencher à fond dessus, résultat : je ne la comprends pas. Il ne faut pas oublier qu'un bon code est un code bien structuré et facilement "reprenable", et éventuellement commenté (mais ce n'est pas parce qu'on commente qu'il faut pour autant se permettre de faire du code moche).
et pas besoin de variables globales !
Un autre avantage d'avoir un code bien structuré en fonction est que, même quelqu'un qui n'aurait pas cette librairie pourrait se faire une petite main vite fait pour tester ta fonction sans dépendre du reste de ton code (sans avoir à faire le tri..).
Il suffit d'une fonction qui te télécharge le code source de la page et qui te l'écrit dans un char*.
Après tu n'as qu'à parcourir ce char* dans ta main (ou dans une autre fonction appelée depuis la main).
Je ne voudrais pas que tu te décourages mais ta "while if while if", pour ma part je la trouve tellement laide que je n'ai pas envie de me pencher à fond dessus, résultat : je ne la comprends pas. Il ne faut pas oublier qu'un bon code est un code bien structuré et facilement "reprenable", et éventuellement commenté (mais ce n'est pas parce qu'on commente qu'il faut pour autant se permettre de faire du code moche).
size_t ecrire(void *ptr, size_t size, size_t nmemb, void *stream) { sprintf(stream, "%s%s", stream, ptr); //concatène stream et str dans stream return nmemb; } void dlwebsite(char *url, char *source) { CURL *session; CURLcode res; source[0] = '\0'; //initialisation source vide session = curl_easy_init(); curl_easy_setopt(session, CURLOPT_URL, url); curl_easy_setopt(session, CURLOPT_WRITEDATA, source); curl_easy_setopt(session, CURLOPT_WRITEFUNCTION, ecrire); curl_easy_perform(session); curl_easy_cleanup(session); } void analyse(char *source) //éventuellement d'autres entrées { ... je te laisse le soin d'y mettre le contenu si tu prends en considération ma présentation de code } int main() { char *url = "https://www.google.com/?gws_rd=ssl"; char *source = malloc(500000); dlwebsite(url, source); analyse(source); }
et pas besoin de variables globales !
Un autre avantage d'avoir un code bien structuré en fonction est que, même quelqu'un qui n'aurait pas cette librairie pourrait se faire une petite main vite fait pour tester ta fonction sans dépendre du reste de ton code (sans avoir à faire le tri..).