Salut, j'ai commence il y a peu l'ecriture d'une lib pour mon loisir personnel.
cette library contient www.h html.h rss.h xml.h cgstring.h. avant de dire ce que chaque partie permet de faire je vais vous presenter le pourquoi.
j'ai commence par cgstring car j'utilise souvent le C mais quand j'ai besoin de faire des traitements sur des fichiers texts ou des chaines de caractere je suis obliger de passer a perl ou python car le C en vraiment pauvre. donc j'ai entrepris la creation de fonction telque splitstr, replacestr...
puis j'ai voulu ecrire un spider donc les autres parties sont venu d'elle meme.
a l'origine c'etait pour moi et moi seule que j'ecrivais ce code. Maintenant je le publi pour 2 raisons.
1/ il doit surment avoir des trucs crades dans mon code que je ne vois pas car ca marche chez moi, donc j'aimerai bien que d'autres testent, lisent le code et m'insulte quand il faut le faire.
2/ si c'est bien que je ne sois pas le seul a en profiter. non?
je vous donne un exemple d'utilisation de la lib.
exemple avec RSS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 char **result = splitStr("j'aime le C"," "); int i=0; while(result[i]!=NULL) { printf("#%d\t%s\n",i,result[i]); ++i; } releaseStr(result); // soit str une chaine alloue avec comme contenut "la trie esvr belle" replaceStr(&str,"tr","v",0); // ca remplacera tout les 'tr' par des 'v'
bref le code est disponiblehttps://sourceforge.net/projects/libwebdoc/ ici, regarder le et n'hesitez pas a critiquer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //soit str un fichier rss charger en memoire dans la str ou tout simplement //un telecharger avec la fonction getHTTPInfo de www.h RSSchannel *Rss=RSSbuild(str); printf("non du channel: %s\nlien:%s\n\n ITEMS:\n",Rss->title,Rss->link); RSSprintItems(Rss->listItem); releaseRSSchannel(&rss);
parlons des parties.
CGSTRING s'occupe essentiellement du traitement des chaines de caracteres, certaines fonction comme lenStr existe deja (strlen) d'autre pas, et d'autre avenir comme cpyStr pour copy mais ca sera legerement different de strcpy car par exemple si vous taper cpyStr(&str,NULL) ca reviendra a faire free(str). en utilisant cpyStr vous n'avez pas besoin au prealable d'allouer de la memoire mais un free() devient obligatoire car cpyStr malloquise votre pointeur.
RSS, juste gentillement mettre un fichier rss dans une structure, elle est definie dans rss.h et vous avez si vous telecharger le projet un fichier qui explique tout mais en anglais. paresse de reecrire en francais.
XML, encore tres incomplet ne lit pas mais fait qu'ecrire des fichiers xml de la maniere la plus simple possible, en faite tout ce dont j'avais besoin quand j'ecrivais le truc.
www.h encore beaucoup de choses a faire mais pour l'instant on peut get une page web ou un fichier et enregister il y a d'autre sous fonctions qui peuvent etre interressantes.
html.h la c'est le bordel d'ailleurs dans le pdf qui va avec j'ai juste donne des precisions sur tres peu de fonction car certaine on ete ecrite et modifie des 10aines de fois, il y en a meme que je ne comprend plus. mais des fonctions sont tres utilisable telque htmlstrip_tags() qui supprime toutes les balises html et le code css, js. pour l'instant ca se passe bien avec les pages web que j'ai tester, d'ailleur j'ai utiliser cette lib pour ecrire un spider(tres salement code) que je vais mettre aussi a disposition de tout le monde(apres reecriture du code) et j'ai crawler en entier fedora-fr.org et cntv.cn sans le moindre probleme.
fuite memoire. pour l'instant valgrind m'a rien signale.
erreur que je comprend pas. valgrind me dit qu'il y a des erreurs mais je pige rien a ce qu'il me racconte.
compatibilite.
code tres peu portable hors de unix/linux. d'ailleur la partie socket doit etre reecrite pour windows mais je le ferai sans doute jamais. en plus j'ai pas trouver d'equivalent pour Visualstudio pour regex.h donc j'ai abandonne l'interoprabilite.
en plus j'ai pas de windows dans mes environs.
me contacter: ben ici ou a l'adresse que j'ai donne chez sourceforge.
Partager