Convertir les caractères spéciaux en code html [text to html]

1/5 (31 avis)

Vue 32 321 fois - Téléchargée 601 fois

Description

Conversion des caractères spéciaux vers leur équivalent en code html.

Ce code (simplifié) est extrait d'un programme que je n'ai pas encore fini de développer... en fait, j'ai à peine commencé.

En réponse à une question posée sur le forum.

----------------------------------------------------

Mise à jour du 11 octobre 2007.

Il semblerait que ce code ait encore une utilité, donc :

- Remaniement du code.
- Ajout de la fonction inverse (sur une idée de svendeville).
- Zip joint afin de tester, voire d'utiliser immédiatement ces fonctions.

Source / Exemple :


function TextToHtml(const S: string): string;
const
  SpeChar = [
  '"','&','?','?','?','?','?','?','?','?','?','?','?','?','?','?',
  '?','?','?','?','?','?','?','?','?','?','?','?','?','?',' ','¡',
  '¢','£','¤','¥','¦','§','¨','©','ª','«','¬','­','®','¯','°','±',
  '²','³','´','µ','¶','·','¸','¹','º','»','¼','½','¾','¿','À','Á',
  'Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ',
  'Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á',
  'â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ',
  'ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ÿ'];
var
  i: Integer;
  Tmp: string;
begin
  Result := '';
  for i := 1 to Length(S) do
  begin
    if S[i] in SpeChar then
      Tmp := Format('&#%d;', [Ord(S[i])])
    else
      Tmp := S[i];
    Result := Concat(Result, Tmp);
  end;
end;

function HtmlToText(const S: string): string;
var
  Index: Integer;
  Tmp: string;
  L: Integer;
begin
  Result := '';
  Index := 1;
  while Index < Length(S) + 1 do
  begin
    if ((S[Index] = '&') and (S[(Index + 1)] = '#')) then
    begin
      Tmp :=  Copy(S, Index, 6);
      L := Pos(';', Tmp);
      Tmp := Char(StrToInt( Copy(Tmp, 3, L - 3) ));
      Inc(Index, L)
    end
    else
    begin
      Tmp := S[Index];
      Inc(Index);
    end;
    Result := Concat(Result, Tmp);
  end;
end;

Conclusion :


On peut adapter la liste des caractères spéciaux selon ses besoins.
En particulier, retirer les caractères peu susceptible d'être utilisés dans la langue française, afin de gagner en rapidité sur les gros textes, bien que le gain soit négligeable, vu la taille des textes destinés à être publiés dépassant rarement quelques dizaines de lignes.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
svendeville Messages postés 9 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 11 octobre 2007
8 oct. 2007 à 17:22
Merci à toi Japee, ton code m'a evité quelques heure de galère...
10/10
cs_intik Messages postés 33 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 12 septembre 2007
27 avril 2007 à 17:41
Pour tout ce qui concerne les charactaire spéciaux sur un clavier Francais/Belge voila le reste

_______________________________________________________

Autres =
['!', '§', ':', '/', ';', '.', ',', '?', '<', '>', '²', '&', '~', '"', '#', '''', '{', '(', '[', '-', '|', '`', '_', '\', '^', '@', ')', ']', '=', '}', '+', '°', '¨', '$', '£', '¤', '*', 'ù', '%', 'µ'];

Modif = MinusculesAccentuees + MajusculesAccentuees + Autres;

_______________________________________________________

je ne suis pas surre pour le ' je me rappel qu'il faut doubler l'apostrophe si on veut on mettre réelement une c'est ce que j'ai fait.... corriger moi si c'est faux

merci
cs_intik Messages postés 33 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 12 septembre 2007
27 avril 2007 à 17:20
cool excéllent 10/10
tres utile !!!!!!!!
jbanety Messages postés 30 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 30 juin 2011
6 avril 2005 à 20:20
Nan en fait, je n'ai rien dit ;)
Oh làlàlàà j'ai dit n'importe quoi :)
En fait ce n'est pas les '#' qui sont retraduis mais les '&'.
Je suis pas réveillé moi :)
jbanety Messages postés 30 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 30 juin 2011
6 avril 2005 à 20:18
J'ai oublié une précision, c'est vrai que j'ai rajouté '#' dans la variable modif. Donc tu n'y avais pas pensé.
Enfin bon c'est histoire de mettre un petit commentaire sur ton code.
@++
Afficher les 31 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.