Sujet : Programme C

Je cherche un programme en C qui me permettrait d'extraire des données d'un fichier hmtl en le parcourant entièrement. Merci.

Re : Programme C

Salut Vince56 et bienvenue parmi nous !

Est ce que tu pourrais préciser ce que tu veux exactement car là c'est assez vague? wink (je n'ai pas de programme dans ce style mais nous pouvons t'aider pour en faire un)

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Programme C

Merci de me souhaiter la bienvenue! J'ai un fichier HTML assez long et je voudrais que mon programme C me renvoie uniquement ce que je lui demande de me renvoyer.

exemple:

<head>
<title>d:\AMX\AIWA\AVDV75(RCVR).html (Vert)</title>
</head> <body bgcolor="#FFFFFF">
<p align="center"><br>
<font color="#0000FF" size="6"><b>VERT</b></font>  <font size="4   7color="#800000">Pronto Color<b> <span style="background-color:  FF0000">   </span><span style="background-color: #00FF00">   </span><span style="background-color: #0000FF">   </span></b></font><hr>
This file was made with VERT Ver 1.02 on 07/11/2003 18:28:29<br>
</font></b>
File Name: d:\AMX\AIWA\AVDV75(RCVR).html<br>
Manufacturer: AIWA<br>
Control:      RC8AR01<br>
Device:       AVDV75(RCVR)<br>
...

Je voudrais qu&#39;il zappe tout le code jusqu&#39;au </font></b>, et qu&#39;il me renvoie tout ce qui suit, sauf le <br>.

Re : Programme C

Voila ce que je ferais pour remplir cette tache :

/////////////////////////////////////////////
DEBUT

Drapeau = 0

Ouverture du fichier source
Creation fichier destination

Creer les pointeurs sur fichiers source et destination

TANT QUE pas en fin de fichier source FAIRE avancer d&#39;un caractère dans le fichier source

 &nbsp;lecture du caractère courant

 &nbsp;SI Drapeau = 0 ALORS &nbsp;// première etape &#58; recherche de la chaine &#34;&#60;/font&#62;&#60;br&#62;&#34;

 &nbsp; &nbsp;SI caractère courant = &#34;&#60;&#34; ALORS
 &nbsp; &nbsp; &nbsp;Comparer les 9 octets suivants &#34;&#60;&#34; avec &#34;/font&#62;&#60;br&#62;&#34;

 &nbsp; &nbsp; &nbsp;SI comparaison vraie ALORS
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Drapeau = 1 // on commencera à copier aps la chaine voulue
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Deplacement du pointeur aps &#34;&#60;/font&#62;&#60;br&#62;
 &nbsp; &nbsp; &nbsp;FIN SI

 &nbsp; &nbsp;FIN SI

 &nbsp;SINON // càd que drapeau = 1

 &nbsp; &nbsp;SI caractère lu = &#34;&#60;&#34; ALORS
 &nbsp; &nbsp; &nbsp; Comparer les 3 caractères suivants à &#34;&#60;&#34; avec &#34;br&#62;&#34;

 &nbsp; &nbsp; &nbsp; &nbsp;SI comparaison vraie alors
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Deplacement de la position courante de lecture aps le &#34;&#60;br&#62;&#34;
 &nbsp; &nbsp; &nbsp; &nbsp;FIN SI

 &nbsp; &nbsp;SINON
 &nbsp; &nbsp; &nbsp;Recopie du caractère lu dans le fichier destination
 &nbsp; &nbsp;FIN SI

 &nbsp;FIN SI

FIN TANT QUE

FIN
/////////////////////////////////////////////

Cet algorithme n&#39;est surment pas correct et sans failles, mais je pense qu&#39;il devrait t&#39;apporter une base de départ pour faire ce que tu veux. Il faudra surement que tu rajoutes des conditions pour les cas particuliers que tu pourrais rencontrer. Je pense aussi qu&#39;il doit y avoir moyen d&#39;aller plus vite que ma méthode en utilisant des fonctions de recherche de chaine qui peuvent te positionner directement là ou se trouve la chaine. Mais aps ca va dépendre de la configuration de ton fichier html.

Je suis parti du postulat qu&#39;il n&#39;y avait qu&#39;une seule chaine </font><br> dans ton fichier. S&#39;il y en a d&#39;autres, l&#39;algorithme risque de ne plus etre valable.

Pour faire les comparaisons, il faut que tu utilises les fonctions de traitement de chaines et les pointeurs sur fichier.

Bon et bien c&#39;est pas tout ca mais la pause déjeuner est finie &#33;

@+++plux

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Programme C

Salut &#33;

As-tu besoin des autres balises HTML ???
Si non, tu peux executer un script PHP (ou C) qui enlève toutes les balises HTML. Tu auras donc beaucoup moins d&#39;informations à traiter.

Tout dépend aussi sur combien de fichiers tu veux appliquer cette méthode. Si ce n&#39;est que pour 3 ou 4 fichiers maximum, je ne pense pas que le programme en C soit nécessaire.

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW


Warning: count(): Parameter must be an array or an object that implements Countable in /home/clients/a38b86744e455b1f2e763fe46170a4c9/web/jebulle.net/forums/include/parser.php on line 820

Re : Programme C

moi je verrais plutot une comparaison ligne a ligne dans le cas ou tout tes fichiers sont formaté de la meme maniere et ou tu es certain que le </font></b> est seul sur sa ligne

tu gagnerais enormement en traitement par rapport au caractere par caractere

en gros ca donne un algorithme dans ce style la

flag=0
ouverture du fichier html
ouverture du fichier de recopie
tant que fichier html non fini
 &nbsp; &nbsp; lire une ligne
 &nbsp; &nbsp; si ligne = &#60;/font&#62;&#60;/b&#62;
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;flag=1
 &nbsp; &nbsp; &nbsp;si flag=1
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recopie de ligne dans le fichier de recopie
fin tant que

si tu as besoin de precision sur les fonctions a utiliser , n&#39;hesite pas a demander

http://membres.lycos.fr/cuicui/forums/panneau_rupert.png

Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes...

WWW

Re : Programme C

Petite précision sur la solution de Rupert, il ne faut pas oublier de ne pas recopier les "<br>" de chaque fin de ligne.

Le principe reste bien sur le meme que dans ma solution...sauf si meilleure solution evidemment wink

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Programme C

Merci, les gars. Mais le problème, c&#39;est que je suis débutant en C et je ne comprends pas toujours vos messages. Je précise que je suis en stage en entreprise, que c&#39;est elle qui m&#39;a demandé de réaliser ce programme et que je n&#39;ai pas eu le choix du langage.

Re : Programme C

je viens d&#39;apprendre que la fonction est déjà prête depuis une dizaine de jours. Ils m&#39;ont laissé chercher un peu en fait. Merci quand même pour votre aide&#33;&#33; smile

Re : Programme C

Mais de rien wink Si tu as besoin n&#39;hésites pas &#33; Et bon courage pour ton stage.

Je voudrais savoir une chose, c&#39;est comment tu as trouvé le forum ? Google ? autre ?

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW