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