IhopeonlyReader - Mo 14.05.12 19:16
Titel: Internet-IP- Fehler
Guten Tag, ich habe die Internet-IP Adresse versucht rauszufinden, und das klappt auch wohl ganz gut, da jedoch immer der ganze HTML-Quelltext der Datei angezeigt wird, wollte ich einen Teil "Rausschneiden" hierbei trat ein Fehler auf, den ich mir nicht erklären kann, er findet mit (pos) die richtigen stellen, aber füht es nicht aus :(
Hier mal der Quellcode (verwendet: Label,Buttonund IdHTTP (Indy 10))
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.Button1Click(Sender: TObject); var i: integer; Quellcode:String; IP: string; begin try Quellcode:= idHTTP1.Get('http://checkip.dyndns.org'); ip:=''; i:=pos('body', Quellcode)+6; while i<pos('</body>',Quellcode) do begin ip:=ip+ip[i]; i:=i+1; end;
Label1.Caption:=IP; except Label1.Caption:= idHTTP1.Get('http://checkip.dyndns.org'); end;
end; |
egal ob for oder while es wird nicht ausgeführt :( per showmessage habe ich die stellen überprüft und bei
pos('body', Quellcode); wurde 51 angezeigt(+6 wäre dann 57)
und für pos('</body>', Quellcode); entsprechend 85. und ich will auch genau diesen Teil dann haben, aber leider klappt es nicht :(
Wisst ihr warum?
jaenicke - Mo 14.05.12 20:25
Schau dir einmal den Befehl Copy an: :zwinker:
http://docwiki.embarcadero.com/Libraries/de/System.Copy
Damit kannst du dir die ganze Schleife sparen und direkt kopieren.
Zum Fehler:
IhopeonlyReader hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| ip:=''; i:=pos('body', Quellcode)+6; while i<pos('</body>',Quellcode) do begin ip:=ip+ip[i]; i:=i+1; end; | |
Halten wir fest:
Zuerst setzt du den Inhalt von ip auf einen leeren String. Danach greifst du auf Position i in ip zu (also
ip[i]). :gruebel:
Meintest du vielleicht
Quellcode[i]? ;-)
Aber wie gesagt, das brauchst du eh nicht.
IhopeonlyReader - Di 15.05.12 16:44
jaenicke hat folgendes geschrieben : |
Schau dir einmal den Befehl Copy an: :zwinker:. |
Kenn ich ;)
jaenicke hat folgendes geschrieben : |
Aber wie gesagt, das brauchst du eh nicht. |
Stimmt ich könnte es auch mit Copy machen, aber die pos und so muss ich trotzdem bestimmen, da ist das dann auch egal ^^
-> ich denke das ist der Programmierstyl jedes Einzelnen :)
PS: Solche Fehler sollten echt nicht passieren/ können ruhig passieren, aber man sollte sie dann beim mehrmaligen nachschauen nicht übersehen ^^