Autor Beitrag
walvaterwotan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 23



BeitragVerfasst: Mi 12.10.05 22:47 
Hi Mädels ....
also ich hab n Prog geschrieben, das mir
1. per DosCommand eine IP ermittelt und ni einer Listbox speichert und
2. per IDHTTP auf einer Seite im Internet eine Seite ausliesst und ich mir einen Teil davon nehme.

Das Programm ansich, funktioniert, wie ich das will, nur hab ich das Problem , dass nach einer variablen Zeit (machmal nach 3 Sekunden, manchmal nach 120 Sekunden) immer ein Fehler auftritt der wie folgt lautet:

Zitat:

"Im Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004023AC in Modul 'Project1.exe'. Lesen von Adresse 018FC548'. Prozess wurde angehalten. Mit einzelne Anweisung auf Start fortsetzen."


Hier noch mein Quellcode dazu:
ausblenden volle Höhe 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:
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:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
 Doscommand1.CommandLine := 'netstat -n';
 DosCommand1.Execute;
  For i:=1 To ip_listbox.Items.Count -1 DO
   Begin
    ipstring:=ip_listbox.Items.Strings[i];
    If pos('4000', ipstring) <> 0 then
     Begin
      ip1:=pos('213.248.106.', ipstring);
      ip2:=pos(':4000', ipstring);
      ip:= ( copy (ipstring,ip1+12,ip2-ip1-12));
     End// of IF Then
    end;   // for to do
  If ip1=0  Then
  Begin
   ip_edit.Text:='Spiel öffnen!';
   timer3.Enabled:=false;
   sek:=0;
   min:=0;
   std:=0;
   zeit_edit.Text:='00:00:00';
  end // of **ip1** if
   ELse
    Begin
     ip_edit.Text:='ServerIP: '+ ip;
     timer3.Enabled:=true;
    end;  // of else
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Doscommand1.OutputLines := ip_listbox.Items;
 u:=1;
 sek:=0;
 min:=0;
 std:=0;
   webstring:=IdHTTP1.Get('***********************'); //website fürs Delphiforum rausgenommen
   u:=u+1;
   hotposi := pos('active', webstring);
   If hotposi = 0 Then
    Begin
     hotIP_edit.text := 'Keine HOT IP ';

    end
     Else
      Begin
       hotposi1:=hotposi+23;
       hotposi2:=hotposi+26;
       teilstring:= copy(webstring,hotposi + 23, (hotposi2 - hotposi1));
       If TryStrTOint(teilstring, zahlstring) = true Then
       hotip_edit.Text:= 'WARM IP: '+ teilstring;
      end;
end;


Ist das sowas wie n Speicherüberlauf der da ensteht?
Sacht mir ma bitte wie ich das lösen kann :(
THX!
Sleipnir


Moderiert von user profile iconTino: Topic aus VCL (Visual Component Library) verschoben am Do 13.10.2005 um 07:11

EDIT: Jetzt läuft das Programm seit ca 10 Minuten ohne ein Problem ... als der Fehler auftrat, lief mein Rechner seit 28 Tagen ohne Neustart. Aber dadurch kann doch solch ein Fehler nicht auftreten oder ??
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Fr 14.10.05 11:36 
Sinnvoll wäre vielleicht vor jeder "wichtigen" Zeile einen Logeintrag in eine Datei zu schreiben. Wenn dann irgendwann der Fehler auftritt weist du wenigstens welche Zeile den Fehler verursacht hat.

Lg Martin