![]() |
Bestimmtes Format aus Memo auslesen
Hallo,
ich habe eine HTML-Seite in ein Memo einlesen lassen. Nun möchte ich alle Zahlen im Format xx:xx:xx (Stunden:Minuten:Sekunden) in eine Listbox oder so auslesen. Z.B.: <table><td>00:13:53</td></table> Dann soll er mir die 00:13:53 und alle anderen Zahlen in diesem Format in eine Listbox eintragen. Wäre super wenn ihr eine Idee habt! Danke im voraus! |
Re: Bestimmtes Format aus Memo auslesen
Google mal nach "TRegExpr" gleich der erste Eintrag findet eine Hervorragende komponente mit BeispielProjekt.
Vorsicht, Seite ist in Tschechisch der richtige Button ist mit "Stahnout TRegExpr" beschriftet. MfG Kolbi |
Re: Bestimmtes Format aus Memo auslesen
Der richtige Reguläre Ausdruck wäre dann sowas wie
[0-9]{2}:[0-9]{2}:[0-9]{2} |
Re: Bestimmtes Format aus Memo auslesen
Danke für den Tip! Da ich aber noch blutiger Anfänger bin, kann ich mit dem Programm leider nicht sehr viel anfangen! Scheint mir auch sehr überdimensioniert für mein kleines Problem zu sein!
Trotzdem Danke! Gibt es für soetwas keine Function oder eine Schleife welche das Memo durchsucht und dann alle Zahlen welche mit zwei Doppelpunkten getrennt sind findet (xx:xx:xx)? |
Re: Bestimmtes Format aus Memo auslesen
Um reguläre Ausdrücke wirst du dabei nicht rumkommen. Zumindest wenn du dir nicht unnötig arbeit machen willst. Du könntest dir so ne Schleife natürlich auch von Hand zusammenbasteln. Aber warum das Rad zweimal erfinden?
|
Re: Bestimmtes Format aus Memo auslesen
Habe mich mit TRegExpr nochmal beschäftigt, und es geht! Super Tipp von
kolbaschedder! Danke danke danke!!! Gruß! |
Re: Bestimmtes Format aus Memo auslesen
Ich bin's nochmal! Habe noch ein Problem! Mein Quelltext sieht jetzt wie folgt aus:
Delphi-Quellcode:
Funktioniert auch alles! Nun möchte ich statt 'deine.html' den vorhanden Quelltext aus meinem Memo1 nehmen!
procedure TForm1.Button2Click(Sender: TObject);
var l: TStringList; r: TRegExpr; begin l := TStringList.Create; r := TRegExpr.Create; try l.LoadFromFile('deine.html'); r.Expression := '[0-9]{2}:[0-9]{2}:[0-9]{2}'; if r.Exec(l.Text) then repeat listbox1.items.Add(r.Match[0]); until not r.ExecNext; finally r.Free; l.Free; end; end;
Delphi-Quellcode:
Funktioniert so aber nicht!
l.LoadFromFile(memo1.lines);
|
Re: Bestimmtes Format aus Memo auslesen
TMemo.Lines ist schon vom Typ TStrings, also einfach
Delphi-Quellcode:
if r.Exec(meinMemo.Lines.Text) then
|
Re: Bestimmtes Format aus Memo auslesen
Danke mquadrat.
Nun habe ich die Zahlen in einer Listbox stehen! Wie funktioniert es nun jede zweite Zeile in der Listbox in eine weitere Listbox zu kopieren! Danke! |
Re: Bestimmtes Format aus Memo auslesen
Schleife durch die Einträge der ersten Listbox und dann eben nur jeden zweiten Eintrag (ungerader Index) in die andere Listbox übertragen.
Delphi-Quellcode:
for i := 0 to listbox1.items.count-1 do
begin if ((i mod 2) = 1) then listbox2.items.add(listbox1.items[i]); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 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 by Thomas Breitkreuz