Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MEMO: KonvertierungsFunktion funzt nit (https://www.delphipraxis.net/20947-memo-konvertierungsfunktion-funzt-nit.html)

Moin 25. Apr 2004 19:12


MEMO: KonvertierungsFunktion funzt nit
 
Moin alle zusammen,
Ich schreibe gerade an einem Html-Editor der reinen Quelltext
Konvertieren kann, so dass er in einer *.htm-Datei direkt ausgegeben werden kann.
Wer sich mit html ein wenig auskennt, der wird erkennen, was beim Klick auf btnConvert passieren soll.
Mein eigentliches Problem hat aber nicht direkt etwas mit HTML zu tun!!!
denn beim klick wird komischer weise nur der SelText gelöscht, er soll aber gelöscht werden und der Konvertierte (Sollte Str2 sein) soll ausgegeben werden.

Ein Beispiel:
Code:

 Hä??? </P>
Wird zu:
Delphi-Quellcode:
&lt;P&gt; H&auml;??? &lt;/P&gt;


Delphi-Quellcode:
procedure TFenster.btnConvertClick(Sender: TObject);
      var str1, str2 : string;
      i :Word;
      spos : Integer;
begin
    spos := Memo.SelStart;
      Str1:= Memo.SelText;
      Str2:= ' ';

      For i:= 0 To Memo.SelLength do
      begin
        Case Str1[i] of
          '<' : If <Bedingung>
                Then Str2:= Str2 + '&lt;'
                Else Str2:= Str2 + Str1[i];
          '>' : If <Bedingung>
                Then Str2:= Str2 + '&gt;'
                Else Str2:= Str2 + Str1[i];
          '"' : If <Bedingung>
                Then Str2:= Str2 + '&amp;'
                Else Str2:= Str2 + Str1[i];
          '&' : If <Bedingung>
                Then Str2:= Str2 + '&quot;'
                Else Str2:= Str2 + Str1[i];
          'ä' : If <Bedingung>
                Then Str2:= Str2 + '&auml;'
                Else Str2:= Str2 + Str1[i];
          'Ä' : If <Bedingung>
                Then Str2:= Str2 + '&Auml;'
                Else Str2:= Str2 + Str1[i];
          'ö' : If <Bedingung>
                Then Str2:= Str2 + '&ouml;'
                Else Str2:= Str2 + Str1[i];
          'Ö' : If <Bedingung>
                Then Str2:= Str2 + '&Ouml;'
                Else Str2:= Str2 + Str1[i];
          'ü' : If <Bedingung>
                Then Str2:= Str2 + '&uuml;'
                Else Str2:= Str2 + Str1[i];
          'Ü' : If <Bedingung>
                Then Str2:= Str2 + '&Uuml;'
                Else Str2:= Str2 + Str1[i];
          'ß' : begin
                If <Bedingung>
                Then Str2:= Str2 + '&szlig;'
                Else Str2:= Str2 + Str1[i];
                end
          Else Str2:= Str2 +Str1[i];
      end; //case
  end;
    Memo.SelText:= Str2;
    Memo.SetFocus;
    Memo.SelStart:= spos +Length(Str2);
end;
Wahrscheinlich habe ich Tomaten auf den augen, aber ich erkennen nicht was falsch is.

HEEEELLFFFFFFFFTTTTTTTT Mir,
THX im Vorraus,
euer Moin

Die Muhkuh 25. Apr 2004 19:14

Re: MEMO: KonvertierungsFunktion funzt nit
 
nach jedem if:

[delphi]
if pos('<hier das rein was gesucht werden soll', Memo1.Lines.Strings[I]) then

Moin 26. Apr 2004 17:38

Re: MEMO: KonvertierungsFunktion funzt nit
 
Tach auch,
Ich bin mir nicht sicher, ob du mich richtig verstanden hast.
mit <Bedingung> im Quelltext meine ich nicht die gesuchte Bedingung, sondern ich habe bolß die bedingungen entfernt, da sie nur MainMenuItems.Checked enthielten nd relativ unwichtig waren.
mein problem besteht darin, dass vermutlich nichts in den String "Str2" gespeichert wird, oder er einfach nicht richtig ausgegeben wird.

Moin

p.s.: Ok das mit den <Bedingung>en hätte ich gleich dazuschreiben können.

Luckie 26. Apr 2004 17:46

Re: MEMO: KonvertierungsFunktion funzt nit
 
Schon mal an StringReplace gedacht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz