Autor Beitrag
IhopeonlyReader
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Mo 14.05.12 19:16 
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))

ausblenden 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');// Quellcode stimmt (IP=stelle 57 bis 85)

ip:=''; i:=pos('body', Quellcode)+6//habe es eig mit for i:=pos('body', Quellcode) to 
while i<pos('</body>',Quellcode) do // pos('</body>',Quellcode), aber hiermit habe ich es auch probiert (ändert nichts)
begin
ip:=ip+ip[i];
i:=i+1;
end;


Label1.Caption:=IP;
except
Label1.Caption:= idHTTP1.Get('http://checkip.dyndns.org'); // Das wird IMMER angezeigt
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 14.05.12 20:25 
Schau dir einmal den Befehl Copy an: :zwinker:
docwiki.embarcadero....aries/de/System.Copy
Damit kannst du dir die ganze Schleife sparen und direkt kopieren.

Zum Fehler:
user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
ip:=''; i:=pos('body', Quellcode)+6//habe es eig mit for i:=pos('body', Quellcode) to 
while i<pos('</body>',Quellcode) do // pos('</body>',Quellcode), aber hiermit habe ich es auch probiert (ändert nichts)
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.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 14.05.12 20:49 
Moin!

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
ich habe die Internet-IP Adresse versucht rauszufinden,
Gibt´s schon fertig in der Library. :les: :think: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
IhopeonlyReader Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Di 15.05.12 16:44 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Schau dir einmal den Befehl Copy an: :zwinker:.

Kenn ich ;)

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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 ^^