Autor |
Beitrag |
Mephisto090
Hält's aus hier
Beiträge: 9
WinXP
Turbo Delphi
|
Verfasst: Di 01.09.09 10:47
Hallo ich habe ein kleines Problem
Ich will aus einem TWebbrowser ein quelltext auslesen (HTML) das auslesen ist kein Prob aber im HTML Quelltext sind enterzeichen und SearchBuf hat damit Probleme
Quelltext 1: 2: 3: 4: 5: 6:
| <TD class=svClosed><A href="/stats/eos">Eos (New)</A></TD> <TD class=svClosed>0/3500</TD> <TD class=svClosed> <DIV align=right>100.0</DIV></TD> <TD class=svClosed>Closed</TD></TR> <TR> |
Delphi-Quelltext 1: 2: 3:
| if SearchBuf(Buff, length(Buff), 0, 0, '>' + edtServername.Text + '</A></TD> (((!!! Siehe Text drunter !!!))) <TD class=svClosed>') <> nil then
if SearchBuf(Buff, length(Buff), 0, 0, '>' + edtServername.Text + '</A></TD><TD class=svClosed>') <> nil then |
Da wo Siehe Text drunter steht muss ich irgendwie das Enter zeichen rein bekommen mit #13 geht es nicht
Danke im Vorraus
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Di 01.09.09 12:05
Hallo,
das funktioniert.
Delphi-Quelltext 1: 2:
| if SearchBuf(Buff,length(Buff),0,0, '>' + edtServername.Text + '</A></TD>'+#13+'<TD class=svClosed>') <> nil then |
bist Du Dir sicher das #13 ausreichend ist?
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
Mephisto090 
Hält's aus hier
Beiträge: 9
WinXP
Turbo Delphi
|
Verfasst: Di 01.09.09 12:13
warum gehts dann bei mir so nicht ich verstehe das nicht ich kann ja mal mehr Quelltext rein Posten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86:
| procedure TForm1.Update; var Buff: PChar; sourcecode: string; Player, Gesamt, PoC, PoCK: Integer; begin sourcecode:= Wb1.OleObject.Document.documentElement.innerHTML; Buff:= PChar(sourcecode); mmo2.Clear; mmo2.Lines.Add(sourcecode); if SearchBuf(Buff, length(Buff), 0, 0, '>' + cbbServername.Text + '<') <> nil then begin lblServername.Font.Color:= clBlack; lblServername.Caption:= 'Servername: ' + cbbServername.Text; if SearchBuf(Buff, length(Buff), 0, 0, '>' + cbbServername.Text + '</A></TD>'+#13+'<TD class=svClosed>') <> nil then begin lblStatus.Font.Color:= clRed; lblStatus.Caption:= 'Status: Closed'; For Player:= 0 to 4000 do begin if SearchBuf(Buff, length(Buff), 0, 0, '<TD class=svClosed>' + IntToStr(Player) + '/') <> nil then begin Application.ProcessMessages; For Gesamt:= 2000 to 4000 do begin if SearchBuf(Buff, length(Buff), 0, 0, '<td class=svClosed>' + IntToStr(Player) + '/' + IntToStr(Gesamt) + '</td') <> nil then begin Application.ProcessMessages; lblPlayer.Caption:= 'Player: ' + IntToStr(Player) + '/' + IntToStr(Gesamt); For PoC:= 0 to 100 do begin if SearchBuf(Buff, length(Buff), 0, 0, '<div align=right>'+ IntToStr(PoC)) <> nil then begin Application.ProcessMessages; For PoCK:= 0 to 9 do begin if SearchBuf(Buff, length(Buff), 0, 0, '<div align=right>'+ IntToStr(PoC) + '.' + IntToStr(PoCK) + '</DIV>') <> nil then begin Application.ProcessMessages; If (PoC > 80) Then begin lblPoc.Font.Color:= clGreen; end; If (PoC < 80) and (PoC > 20) Then begin lblPoc.Font.Color:= clYellow; end; If (PoC < 20) Then begin lblPoc.Font.Color:= clRed; end; lblPoc.Caption:= 'PoC: ' + IntToStr(PoC) + '.' + IntToStr(PoCK) + ' %'; end; end; end; end; end; end; end; end; end; end else begin if not (SearchBuf(Buff, length(Buff), 0, 0, '>Server Inspection</td') <> nil) then begin lblServername.Font.Color:= clRed; lblServername.Caption:= 'Servername: Nicht Gefunden'; end; end; if (SearchBuf(Buff, length(Buff), 0, 0, '>Server Inspection</td') <> nil) then begin lblServername.Font.Color:= clRed; lblServername.Caption:= 'Server Inspection'; lblPlayer.Visible:= False; lblPoc.Visible:= False; lblStatus.Visible:= False; cbbServername.Enabled:= False; end else begin lblPlayer.Visible:= True; lblPoc.Visible:= True; lblStatus.Visible:= True; cbbServername.Enabled:= True; end; end; |
ab dem 2 SearchBuf macht er nicht weiter weil wie gesagt der Quelltext lass ich mir in einem Memo ausgeben leerzeichen hat oder sowas in der art
EDIT: nach dem 2 fehlt bei SearchBuf eine Menge also nicht beachten :p
Auszug aus dem TMemo
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| <TR> <TD class=svClosed><A href="/stats/apollo">Apollo (New)</A></TD> <TD class=svClosed>0/3500</TD> <TD class=svClosed> <DIV align=right>100.0</DIV></TD> <TD class=svClosed>Closed</TD> <TD> </TD> <TD class=svClosed><A href="/stats/titan">Titan (New)</A></TD> <TD class=svClosed>0/3500</TD> <TD class=svClosed> <DIV align=right>100.0</DIV></TD> <TD class=svClosed>Closed</TD></TR> |
und da ich ja nicht die ausgaben von Irgendwelchen Servern haben will muss ich halt dieses Enter beachten und immer weiter machen
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Di 01.09.09 12:19
#13#10 ?
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Di 01.09.09 13:10
Hallo,
Lannes hat folgendes geschrieben : | bist Du Dir sicher das #13 ausreichend ist? |
was mir noch so auffällt:
SearchBuf(Buf: PAnsiChar ...) erwartet PAnsiChar
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
Mephisto090 
Hält's aus hier
Beiträge: 9
WinXP
Turbo Delphi
|
Verfasst: Di 01.09.09 14:54
cool mit #13#10 hat es geklappt
|
|
|