Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Memo auswerten
tmkb - Mi 01.01.03 17:37
Titel: Memo auswerten
Hallo,
Ich habe folgendes vor: Wenn man auf button1 drückt, sucht er sich in memo1 alle IPs (weiß nicht wie man die am besten auslesen kann!) und schreibt die dann in dem Format in memo2:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| 127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
usw |
(also immer ne freie zeile zwischen jeder IP und vor jeder ip zwei leerstellen)
Zur Info: Die IPs in memo1 sind immer woanderst, ich kann also nicht sagen "Zeile 1 von stelle 1 bis 7" oder so. außerdem sind immer verschieden viele IPs in memo1. Kann mir da irgendjemand aushelfen und mir wenns möglich wäre einen relativ leicht verständlichen Code geben? Ich krieg das nämlich nicht hin, ist nicht ganz meine kragenweite...
danke schon im vorraus!
cu,
tmkb[/code]
matze - Mi 01.01.03 19:58
was ist denn das für ein text, in dem die IPs vorkommen ?? ist das ein HTML quelltext, denn dann kann man den z.b. sehr einfach nach hyperlinks durchsuchen !
tmkb - Mi 01.01.03 20:52
nein, es ist mehr eine Logdatei in dem Format:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| Command Beginning 127.0.0.1 Listening on Port 21 127.0.0.6 Listening on Port 21 127.0.0.12 Listening on Port 21 Command End
Command Beginning 127.0.0.45 Listening on Port 21 127.0.0.68 Listening on Port 21 127.0.0.2 Listening on Port 21 127.0.0.88 Listening on Port 21 Command End
usw. |
Sledge_Hammer - Mi 01.01.03 22:05
Moin
Also ich weiß nicht ob das nun das Beste ist was man machen kann, aber ich würde über prüfen, ob das erste Zeichen in der Zeile eine Zahl ist und dann würde ich alles in einem String speichern bis das erste Leerzeichen kommt, also die IP zuende ist.
kampfkoloss23 - Mi 01.01.03 22:10
ist doch ganz einfach, zwar ein bißchen Arbeit. Mach doch ne Einfache if Abfrage. En schnelleren Weg weiß ich leider auch nicht. Schau dir die Stellen einzeln an und mach halt immer ne if Abfrag.
charakeristisch für die Ip ist z.B, dass drei Punkte max. 3 Stellen jeweils auseinander sind also:
Jedes zeichen einzeln auslesen mit copy(memo1.text,f,g);
Falls '.', dann überprüfen, ob noch 2 Punkte da, wenn ja, dann Teil kopieren von Leerstelle davor bis dahinter ist zwar en bißchen Arbeit, aber die genauen Befehle für das auslesen z.B copy findest du in der Delphi Hilfe
Delete - Mi 01.01.03 22:47
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.Button1Click(Sender: TObject); var i : Integer; s : String; iZeichen : Integer; begin for i := 0 to Memo1.Lines.Count-1 do begin s := Memo1.Lines.Strings[i]; if s = '' then continue; ShowMessage(s); iZeichen := StrToIntDef(s[1], -1); if iZeichen = -1 then continue; if iZeichen in [0..9] then s := copy(s, 0, pos(' ', s)); ListBox1.Items.Add(s); end; end; |
tmkb - Do 02.01.03 01:44
danke, klappt!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!