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

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

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.