IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

parser fichier texte pour avoir un doc html !!


Sujet :

Delphi

  1. #1
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut parser fichier texte pour avoir un doc html !!
    bonjour, pour parser le texte j'utilise cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function ReplaceSub(str, sub1, sub2: String): String;
    var
      aPos: Integer;
      rslt: String;
    begin
      aPos := Pos(sub1, str);
      rslt := '';
      while (aPos <> 0) do
        begin
          rslt := rslt + Copy(str, 1, aPos - 1) + sub2;
          Delete(str, 1, aPos + Length(sub1)-1);
          aPos := Pos(sub1, str);
        end;
      Result := rslt + str;
    end;
    Le remplacement de certain caractères dans mon texte se fait en cliquant sur un bouton avec cette procédur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    procedure TForm1.Button22Click(Sender: TObject);
    var
     my_file : TextFile;
     my_string : String;
     number_of_line : integer;
    begin
    Memo5.Text := '<span style="font-size:12px;font-family:Lucida Grande"><pre>' + Memo3.Text + '</pre></span>';
     AssignFile(my_file, 'C:\index.html');
    Rewrite(my_file);
     
    with Memo5 do
    begin
    For number_of_line := 0 To Lines.Count - 1 Do
    ReplaceSub(Memo5.Text, '[g]', '<b>');
    ReplaceSub(Memo5.Text, '[/g]', '</b>');
    ReplaceSub(Memo5.Text, '[s]', '<u>');
    ReplaceSub(Memo5.Text, '[/s]', '</u>');
    ReplaceSub(Memo5.Text, '[i]', '<i>');
    ReplaceSub(Memo5.Text, '[/i]', '</i>');
    ReplaceSub(Memo5.Text, '[align=center]', '<div align=center>');
    ReplaceSub(Memo5.Text, '[/align]]', '</div>');
    ReplaceSub(Memo5.Text, '[align=left]', '<div align=left>');
    ReplaceSub(Memo5.Text, '[/align]]', '</div>');
    ReplaceSub(Memo5.Text, '[align=right]', '<div align=right>');
    ReplaceSub(Memo5.Text, '[/align]]', '</div>');
    End;
     
    Writeln(my_file, Memo5.Text);
    closeFile(my_file);
    WebBrowser1.Navigate('C:\index.html');
    end;
    ==> Problème : le résultat ne change pas du texte initial :s
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    C'est normal, tu ne récupères pas la valeur modifiée.
    Ta fonction ReplaceSub retourne un string que tu n'utilises pas
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 101
    Points
    101
    Par défaut
    Bonjour,

    tu transformes ta FUNCTION en PROCEDURE et tu passes ta ligne en VAR

  4. #4
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    de qu'elle maniere puis régler le problème???
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

  5. #5
    Membre habitué Avatar de avogadro
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 412
    Points : 188
    Points
    188
    Par défaut
    Cest gooooood, la procédure finale est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    procedure TForm1.Button22Click(Sender: TObject);
    var
     my_file : TextFile;
     my_string : String;
     number_of_line : integer;
    begin
    Memo5.Text := '<span style="font-size:12px;font-family:Lucida Grande"><pre>' + Memo3.Text + '</pre></span>';
     AssignFile(my_file, 'C:\index.html');
    Rewrite(my_file);
     
    with Memo5 do
    begin
    For number_of_line := 0 To Lines.Count - 1 Do
    begin
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[g]', '<b>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[/g]', '</b>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[s]', '<u>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[/s]', '</u>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[i]', '<i>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[/i]', '</i>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[align=center]', '<div align=center>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[/align]]', '</div>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[align=left]', '<div align=left>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[/align]]', '</div>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[align=right]', '<div align=right>');
    Lines.Strings[number_of_line] := ReplaceSub(Lines.Strings[number_of_line], '[/align]]', '</div>');
    end;
    End;
     
    Writeln(my_file, Memo5.Text);
    closeFile(my_file);
    WebBrowser1.Navigate('C:\index.html');
    end;
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    (\_/)
    (O.o)
    (> <)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination!!
    =-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/10/2007, 11h36
  2. [HTML] Inserer un fichier text (".txt") dans une page HTML
    Par silverfab34 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 04/10/2007, 11h57
  3. Ouvrir un fichier texte pour l'éditer
    Par BGass dans le forum Général Python
    Réponses: 8
    Dernier message: 20/11/2006, 11h31
  4. Réponses: 2
    Dernier message: 02/02/2006, 18h21
  5. fichier texte pour access
    Par NPP dans le forum Access
    Réponses: 2
    Dernier message: 03/01/2006, 17h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo