begin process at 2012 02 11 09:47:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Texte

 > CONVERTIR LES CODE HTML EN CARACTÈRES SPÉCIAUX

CONVERTIR LES CODE HTML EN CARACTÈRES SPÉCIAUX


 Information sur la source



 Description

Voici le complément à la source poster par Japee :
http://www.delphifr.com/codes/CONVERTIR-CARACTERE S-SPECIAUX-CODE-HTML_27193.aspx

J'ai volontairement donné le titre opposé.

Bien sur il est sans doute possible d'améliorer le code (cela ne fait que 4 semaines que je me suis mis à DELPHI.

J'espère qu'il vous servira au temps que le source de Japee m'a était util...

Source

  • function HtmlToText(S:String):String;
  • var
  • i, index, compteur :integer;
  • Stmp, coupe : String;
  • begin
  • Result := '';
  • compteur := 0;
  • for i:=1 to Length(S) do
  • begin
  • if i < compteur then continue;
  • if ((S[i] = '&') and (S[(i + 1)] = '#')) then
  • begin
  • index := (i + 2);
  • coupe := copy(s, index, Length(S));
  • compteur := Pos(';', coupe);
  • coupe := copy(coupe, 0, compteur - 1);
  • Stmp := char(StrToInt(coupe));
  • compteur := compteur + index;
  • end
  • else
  • Stmp := S[i];
  • Result := Result + Stmp;
  • end;
  • end;
function HtmlToText(S:String):String;
var
  i, index, compteur :integer;
  Stmp, coupe : String;
begin
  Result := '';
  compteur := 0;
  for i:=1 to Length(S) do
  begin
    if i < compteur then continue;
    if ((S[i] = '&') and (S[(i + 1)] = '#')) then
    begin
      index := (i + 2);
      coupe := copy(s, index, Length(S));
      compteur := Pos(';', coupe);
      coupe := copy(coupe, 0, compteur - 1);
      Stmp :=  char(StrToInt(coupe));
      compteur := compteur + index;
    end
    else
      Stmp := S[i];

    Result := Result + Stmp;
  end;
end;

 Conclusion

N'hésitez pas à me faire part de vos remarque (sans être trop méchant)...

Bon Dév à tous


 Sources de la même categorie

Source avec Zip Source avec une capture TABLEAU INFO SAVE INI par quentinix
Source avec Zip TIBWORD: EDITEUR ORIENTE LANGUE TIBÉTAINE par fredelem
Source avec Zip Source avec une capture POSTIT INFOS par dubois77
Source avec Zip Source avec une capture STREAM STRINGWRITER... UNE MICRO-LIBRAIRIE POUR ÉCRIRE DES C... par LaDentDeLait
Source avec Zip COMBINAISONS DE STRINGS par askil2000

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DOWNSAMPLING OU COMMENT BIEN OPTIMISER LE CODE par Bacterius
Source avec Zip Source avec une capture INTÉGRATION DE PAGE HTML DANS LES RESSOURCES D'UNE DLL par christophe75018
Source avec Zip WEB-BUILDER par numeror86
Source avec Zip Source avec une capture VFONTS : OUTIL DE VISUALISATION DES POLICES CARACTÈRES INSTA... par bluemandfr
Source avec Zip Source avec une capture CONVERTIR LES CARACTÈRES SPÉCIAUX EN CODE HTML [TEXT TO HTML... par japee

Commentaires et avis

Commentaire de japee le 09/10/2007 15:22:06 administrateur CS

Salut svendeville.

Je suis à la fois flatté et désolé que tu fasses référence à un si vieux code que je n'ai pas dépoussiéré depuis que je l'ai posté, il y a bientôt 3 ans...

Bon, 2 ou 3 choses :

Quand j'ai posté le mien, la rubrique Snippet n'existait pas, et le mien comme le tien y seraient plus à leur place.

Il vaut mieux déclarer une variable string en constante quand on la passe en paramètre (si l'on n'a pas besoin de la modifier bien sûr), on y gagne en efficacité. Tu noteras que je ne l'avais pas fait sur mon code, ce qui est un exemple tout à fait déplorable pour les nouvelles générations de Delphistes. Faut dire à ma décharge que je programmais pas depuis ben longtems à c't' époque...

Il faut éviter les instructions "Continue" et "Break" dans une boucle, sauf cas particulier et évident.

Je pense que tu aurais eu intérêt à utiliser plutôt une boucle repeat ou while étant donné que l'incrémentation de l'index dans la chaîne à parcourir n'est pas régulière. Tu aurais ainsi pu faire l'économie de quelques variable.

Voici comment j'aurais fait, en essayant de respecter ton approche :

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

Quoi qu'il en soit, je t'encourage à persévérer, c'est plutôt pas mal pour 4 semaines de prog' au compteur.

A plus.

japee

Commentaire de japee le 09/10/2007 15:51:39 administrateur CS

Ah oui, autre chose...

Ta fonction ne pourra être utilisé que si le texte html a été codé selon un procédé identique à celui que j'utilise.

Et ensuite, dans mon code, il vaut mieux écrire :

STmp := Char(StrToIntDef(Copy(STmp, 3, L - 3), 63));

...on ne sait jamais.

Commentaire de svendeville le 11/10/2007 09:25:33

Salut Japee,

Merci pour tes commentaires et conseils, je confirme que mon code ne pourra être utilsé que si on utilise ta fonction pour convertir en html, c'est justement en ce sens que je l'ai pensé.
En fait nous développons une appli dont l'iterface est entirement faite en français, et pour faire le traduction, j'ai créé en delphi un exctracteur qui vas récupèrer les chaines de cette appli, et pour que les traducteur puissent travailler corectement, je génére un fichier au standard XLIFF, ce qui m'oblige à convertir tous les caractères spéciaux (Là j'utilise ton code), après traduction, je doit reconvertir dans l'appli corectement en texte, donc, j'ai fait cette fonction en contrepartie de la tienne.
Je vais suivre tes conseils pour la boucle et les variables et constantes, et je vais également mettre la source sur la rubrique Snippet.

Encore merci à toi.
Bonne continuation.

Commentaire de wari le 07/01/2008 08:07:57

Salut les programmeurs,
je né pas encore tester ce code mais en premiere vue
ce que je comprent pas, est que vous utilisez un argument s : string en entrée, les chane de ce type ne dépasse pas les 256 caractères.
mm si vous voulez utilisé cette fct ligne par ligne dans un text HTML, je pense qu'il ya des code HTML ou les ligne dépasse largement les  256 caractères, pk ne pas utiliser un mémo par expmple.

cordialement

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Couleur [ par Shadow ] Salut, je voudrai mettre une couleur comme fond sur ma form mais la couleur c un code html alors je veux savoir si je peux utiliser un code html ?moi Code HTML avec WebBrowser [ par PowerII ] Slt,cmt je pourrais faire pour récupérer le code HTML d'une page chargée ds un WebBrowser et le mettre ds un string ou un memo???...Merci caractères spéciaux [ par sisi231 ] SISI231Bonjour !Y'aurait-il un API Windows pour taper dans le tedit ou le Tmemo qui a le focus un caractère spécial (par exemple le a accent aigu) et Grrr... les 4260 caractères. [ par stailer ] Bonjour tout le monde !Voila un problème qui me fait bien rager aujourd'hui !J'ai un champ memo dans lequel j'obtiens du code html automatiquement.Se tdbgrid et caractères spéciaux [ par sisi231 ] Bonjour , Je voudrais savoir comment intégrer un caractère spécial dans la case en cours du tdbgrid1 à l'emplacement du curseur quand l'utilisateu Ajout de chaînes de caractères [ par zmc ] Bonsoir, en fait j'aimerais ajouter des caractères à un endroit donné d'un Memo. Par exemple le code entré dans le memo "Code ASP" serait ajouté entre Code HTML dans un memo [ par propa ] Bonjour, je suis débutant en delphi et j'ai un soucis concernant la récupération du code HTML d'une page dans un memo.J'utilise WebBrowser1.OleObject. Comment on converti un RichEdit en code HTML? [ par thoreycity ] Bonjour, je voudrais convertir un RichEdit (avec des mises en formes, gras, couleur...) en code html. Connaîssez vous un composant pour le faire? Ou p aider moi a convertir des doc et xls en html [ par kingstdz2004 ] Bonjourje cherche les command ole automation pour convertir des fichier word *.doc et excel *.xls en format htmlsous delphi 5.0 aider moi svpet repond Je cherch vraiment des pro [ par jobtunisieyasser ] Salut les amisje cherche un interpréteur de code htmlou un éditeur de de code html en outre une source ou un composant qui traduit la mise en page en


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,696 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales