![]() |
Text aus String wegschneiden?
Hallo,
Ich versuche mit folgenden Code meine IP zu ermitteln:
Delphi-Quellcode:
Dieser gibt mir zwar meine IP aus, allerdings mit HTML-Tags:
Memo1.Lines[0] := IdHTTP1.Get('http://checkip.dyndns.org');
<html><head><title>Current IP Check</title></head><body>Current IP Address: 217.231.61.98</body></html> Wie kann ich nun diese wegschneiden, so das nur noch die IP übrig bleibt??? Danke! |
Re: Text aus String wegschneiden?
|
Re: Text aus String wegschneiden?
Bin nicht der geborene Delphianer. Es würde mir ein kleines Code-Beispiel sehr viel helfen.
|
Re: Text aus String wegschneiden?
Ich denke, in der Delphi Hilfe sollten mehr als genug Beispiele sein.
Aber noch mal ganz kurz: Mit COPY kopierst du alles nach "Address:" (das kannst du mit POS (liefert den Start-Index, d.h. du musst noch die Länge (length()!) von Address: dazuzählen) suchen oder gleich abzählen...) bis die IP endet, also bis </body>, das du wieder mit POS suchen kannst. |
Re: Text aus String wegschneiden?
Da steig ich nicht hinter! Ich habe mir überlegt, den ganzen Kram in einer StringList zu übergeben:
Delphi-Quellcode:
Wie kann man den Faden jetzt weiter spinnen?
procedure TForm1.Button1Click(Sender: TObject);
var slWork : TStringList; begin Memo1.Lines[0] := IdHTTP1.Get('http://checkip.dyndns.org'); try slWork := TStringList.Create; Memo1.Lines.AddStrings(slWork); finally FreeAndNil(slWork); end; end; |
Re: Text aus String wegschneiden?
Hallo,
besser ist IMHO wenn du hier mit [dp]reguläre Ausdrücke[/dp] arbeitest (siehe auch ![]() Auf den ersten Blick mag das bißchen kompliziert aussehen - ist dafür aber nicht so anfällig wenn sich die Ausgabe der Internetseite mal leicht verändert - und im DP-Archiv scheint es auch viel zum Thema zu geben. |
Re: Text aus String wegschneiden?
Boah!!! Daraus werde ich erst recht nicht schlau! Trotzdem Danke!!!
|
Re: Text aus String wegschneiden?
Mit einer StringList würde ich nicht arbeiten.
Hier mal ein kleines Beispiel:
Delphi-Quellcode:
Index gibt den Index an, aber der kopiert werden soll und copy wie viele Zeichen kopiert werden sollen...
procedure TForm1.Button1Click(Sender: TObject);
var s : String; index, count : Integer; begin s := '<html><head><title>Current IP Check</title></head><body>Current IP Address: 217.231.61.98</body></html>'; index := POS('Address: ', s) + length('Address: '); count := Length(s) - index - length('</body></html>') +1; s := Copy(s, index, count); end; Habe es nicht getestet, hoffe aber, dass es funktioniert. Wenn sich aber die Struktur der Website ändert, passt auch der Code nicht mehr, logisch oder? |
Re: Text aus String wegschneiden?
Und hier auch noch ein Beispiel von mir :stupid:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var myString : String; ipString : String; i : Integer; begin myString := '<html><head><title>Current IP Check</title></head><body>Current IP Address: 217.231.61.98</body></html>'; i := Pos (':',mystring); // Position von ":" ermitteln. Delete (myString,1,i); // Alles bis zur "IP-Adresse" löschen i := Pos ('<',mystring); // Position von "<" ermitteln. ipString := Copy(myString,1,i-1); // Alles bis zur Postion von "<" -1 in einen neuen String kopieren. Label1.Caption := ipString; end; |
Re: Text aus String wegschneiden?
Leuchtet schon ein. Nur wie übergebe ich jetzt den gefilterten String in ein weiteres Memo. Ich hoffe ich nerve nicht all zu sehr!!!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 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