Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi mailto: herausfiltern (https://www.delphipraxis.net/5951-mailto-herausfiltern.html)

aaron 24. Jun 2003 16:45


mailto: herausfiltern
 
hallo ich muss folgenden string (kommt öfters vor)
Code:
[email="name@domain.de"]name@domain.de[/email]
aus einer html-datei herausfiltern weil ich diese austauschen muss.
das will mir mit dem code unter aber nicht ganz glücken, schwierigkeiten machen irgendwelche tags z.b.
Code:
usw....
die am ende dranhängen und die ich einfach nicht rausgefiltert kriege.
nein, ich will mir keinen spider bauen ;)

Delphi-Quellcode:
 for i := 0 to Memo4.Lines.Count - 1 do
      begin
        if Pos('<a href="mailto:', Memo4.Lines.Strings[i]) > 0 then
        begin
          s := '';
          for p := Pos('<a href="mailto:', Memo4.Lines.Strings[i]) to
            Length(Memo4.Lines.Strings[i]) do
            if Memo4.Lines.Strings[i][p] <> '</a>' then
              s := s + Memo4.Lines.Strings[i][p]
            else
              break;
         // while Pos(s[Length(s)], '..;!")]}?''><`´/' + '</br>' + '</p>' + '</a>' + ('a..z')) > 0 do
           // Delete(s, Length(s), 1);
          Memo5.lines.Add(s);
        end;
      end;
    end;

Treffnix 25. Jun 2003 19:34

Code:
if Memo4.Lines.Strings[i][p] <> '</a>' then
Wenn ich das richtig sehe, vergleichst du ein Char mit einem String.
Der Char an Stelle p des Strings kann ja nie '</a>' sein, weil das schon 4 Chars sind. Also läuft die Schleife immer bis zum Ende des Strings und liest weiter die Zeichen ein.

aaron 25. Jun 2003 23:29

klingt logisch...nur habe ich keine ahnung wie ich das ändern kann, du?

Christian Seehase 25. Jun 2003 23:46

Moin Aaron,

und was hältst Du von dieser Lösung:

Delphi-Quellcode:
  Memo1.Text := StringReplace(Memo1.Text,'OldAccout@domain.de','NewAccount@domain.de',[rfReplaceAll,rfIgnoreCase]);
:?:

aaron 25. Jun 2003 23:52

ja...gute idee ;)

Christian Seehase 25. Jun 2003 23:59

Moin Aaron,

dabei fällt mir ein:
Solltest Du das in einer Schleife machen wollen, weil Du eine Liste verschiedener alter und neuer Werte abarbeiten musst je Datei, solltest Du Memo.Text zu Beginn in eine Stringvariable übertragen, damit arbeiten und dann am Schluss erst wieder Memo.Text setzen.
Ansonsten geht das (u.U. ganz erheblich) auf die Performance.

aaron 26. Jun 2003 00:27

ok, habe aber noch eine andere frage dazu,
falls diese nun nicht mehr hierhin gehört verschiebe sie bitte.

im memo6 stehen nun untereinander ein paar mailadressen
ich möchte sie umwandeln mit Ord und zeilenweise in eine listbox übergeben.
so wie ich es jetzt habe nimmt der immer alle zeilen des memos und packt die zeile für zeile in die listbox, was mache ich falsch?
Delphi-Quellcode:
var
  i: integer;
  s1, s2: string;
begin
  s1 := Memo6.Text;
  s2 := '&#';
  for i := 1 to Length(s1) do
    s2 := s2 + Format('%d', [Ord(s1[i])]) + ';&#';
  for i := ListBox1.items.count - 1 downto 0 do
    Listbox1.Items.add(s2);
denke es liegt daran:
Delphi-Quellcode:
s1 := Memo6.Text;
kriegs nicht hin

Treffnix 26. Jun 2003 00:28

Willst du den String ersetzen? Ich hatte es so verstanden, dass du verschiedene verlinkte E-Mails aus nem HTML-Text herausfiltern willst. Prinzipiell würde das mit deinem Quelltext ja auch schon gehen, wenn du statt bis zu '</a>' bis zum '"' laufen würdest, oder? Anführungszeichen dürften ja normalerweise auch kein bestandteil eine E-Mail Adresse sein.

Sollte ich jetzt Blödsinn schreiben, schieb ichs auf die Uhrzeit. :roll:

aaron 26. Jun 2003 00:31

danke, gehört zwar dazu ist aber jetzt ein anderer bereich, äh...ja
ich weiß auch nicht genau ob das jetzt noch hierhin gehört :chat:

Christian Seehase 26. Jun 2003 00:39

Moin Aaron,

Zitat:

Zitat von aaron
ich weiß auch nicht genau ob das jetzt noch hierhin gehört

Siehst Du, und schon geht das Durcheinander los ;-)

Eröffne doch bitte für die neue Frage auch einen neuen Thread.

Danke.

PS: Mir würde jetzt auch kein Titel einfallen :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.
Seite 1 von 2  1 2      

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