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

Soyez le premier à donner votre avis sur cette source.

Vue 31 216 fois - Téléchargée 491 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

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

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

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

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

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.
@++

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.