[language C] supprimer <font> page html

Fermé
leiny - 6 avril 2005 à 09:28
 p.legal - 7 avril 2005 à 10:24
Bonjour,

Je suis sur un petit programme en c, je c’est la méthode un employer mais je me prend la tête sur son écriture.

Pouvez vous m’aider ?

Le sujet est : « supprimer dans une page html les couples de balises type <font></font> »

Disons source.html. je vais lire dans source.html, caractère par caractère. Et
à chaque fois je copie le caractère que je lis vers le fichier destination.html.
SAUF lorsque ce caractère est un <, auquel cas j’attends de voir le
suivant. Si le suivant est f [ou F...], je continue
d'attendre. Si le suivant est o (ou O), je continue d'attendre, etc.
Si j’arrives ainsi jusqu'à > je reprends ensuite ma copie comme si de
rien n'était en ayant en fait "sauté" le <font> ou le </font>.

Si un caractère ne correspond plus à la chaîne attendue (par exemple, on
as cessé la copie à < mais c'est en fait une balise
donc en arrivant sur le b on reprend la copie), il faut reprendre là où on a
cessé la copie : cela nécessite que je stockes quelque part les
caractères précédents.

Ensuite, plus qu'à remplacer source.html par destination.html et on as
un fichier tout neuf sans balises font.

Mais je n’arrive pas à l’écrire. Merci d’avance.
A voir également:

2 réponses

GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 386
6 avril 2005 à 17:29
Je te donne un petit conseil en plus:
tu as mal pensé le probléme, car il faut aussi prendre en compte les chaine de caratères.

Je m'explique, si tu a le code suivant:
<table test="<font>">

et bien il ne faut supprimer la balise <font> car elle n'a rien a voir avec une balise normal.

de plus une balise font ne se limite pas qu'a <font> ou <FONT>, il faut aussi se dire qu'il peut y avoir
<font size="5">
ou
<font color="#FFEE00" size="1">
0
GallyNet à raison.

je te propose l'algo suivant, il fonctionne comme un interupteur va-et-vient, je veux dire par là que tu cherche soit un guillemet soit une balise et quand tu en trouve un des deux tu ne cherche plus l'autre tant que tu n'a pas terminée l'action correspondante.:

lire chaque caracteres les un après les autres
si caractere= guillemet suspendre la fonction de suppression jusqu'a ce qu'on trouve un nouveau guillemet.
si caractere= < et les suivants = font activer la fonction de suppression et desactiver la fonction de recherche de guillemet

si caractere= < et les suivants = /font activer la fonction de suppression et reactiver la fonction de recherche de guillemet

la fonction de suppression commence là ou on l'a appellée et supprime tout jusqu'a ce qu'elle trouve un >

j'ai fait le prog en Liberty BASIC et ça fonctionne, tu devrais donc y arriver en C.

@++
0