Fehler beim Herunterladen mehrerer Dateien (FTP) - [Gelöst]
-
- Beiträge: 202
- Registriert: Do 16. Mai 2013, 13:49
- OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
- CPU-Target: AMD Octacore 4.0GHz
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
@Achzig
Dankee :DD , eine etwas von mir abgewandelte Form deines Codes, hat mein Problem behoben. :D
Danke nochmal ;)
MfG mark332
Dankee :DD , eine etwas von mir abgewandelte Form deines Codes, hat mein Problem behoben. :D
Danke nochmal ;)
MfG mark332
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Gerne
Nebenbei bemerkt hat die Achtzig was mit Acht zu tun, weswegen normalerweise auch ein t vor dem zig kommt. Aber egal. Das t wird von vielen ignoriert
Wenn noch funktionale Fehler in dem Beispiel-Quelltext waren, wäre es gut, wenn Du noch die funktionierende Version hier einstellst. Falls es nochmal gebraucht werden sollte.

Nebenbei bemerkt hat die Achtzig was mit Acht zu tun, weswegen normalerweise auch ein t vor dem zig kommt. Aber egal. Das t wird von vielen ignoriert

Wenn noch funktionale Fehler in dem Beispiel-Quelltext waren, wäre es gut, wenn Du noch die funktionierende Version hier einstellst. Falls es nochmal gebraucht werden sollte.
-
- Beiträge: 202
- Registriert: Do 16. Mai 2013, 13:49
- OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
- CPU-Target: AMD Octacore 4.0GHz
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Fehler an sich waren nur hier:
müsste sein:
ansonsten hab ich das nur so geändert, dass ichs in 3Monaten auch noch verstehe ;)
Code: Alles auswählen
function FTPLogout;
begin
FtpInstance.Logout;
FtpInstance.Free;
end;
Code: Alles auswählen
function FTPLogout: Boolean;
begin
Result:=false;
FtpInstance.Logout;
FtpInstance.Free;
Result:=true;
end;
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Ne, so geht das nicht
Result kannst Du da weglassen. Wenn schon, mußt Du mit try except arbeiten sonst macht das keinen Sinn.
Ich bin einfach davon ausgegangen, daß Logout keine Ausnahme wirft, also als Beispiel. Natürlich kann man da noch try except einbauen, wie auch in FtpDownload. Dann wäre es sauberer.

Result kannst Du da weglassen. Wenn schon, mußt Du mit try except arbeiten sonst macht das keinen Sinn.
Ich bin einfach davon ausgegangen, daß Logout keine Ausnahme wirft, also als Beispiel. Natürlich kann man da noch try except einbauen, wie auch in FtpDownload. Dann wäre es sauberer.
-
- Beiträge: 202
- Registriert: Do 16. Mai 2013, 13:49
- OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
- CPU-Target: AMD Octacore 4.0GHz
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Naja, das Problem war, dass der Compiler Ausgeworfen hat: " ':' Exepted but ';' found... ich habs einfach so geschrieben und es geht auch, also... :DD
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
FtpLogout war eine Procedure - keine Function
Aber schön, wenn Du nicht alles mit Copy und Paste machst.

Aber schön, wenn Du nicht alles mit Copy und Paste machst.
-
- Beiträge: 202
- Registriert: Do 16. Mai 2013, 13:49
- OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
- CPU-Target: AMD Octacore 4.0GHz
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
ok..... jemand ne Ahnung, weswegen ich hier bekomme "EStringList (2) Out of Bounds Exeption" ?
dirs.txt:
recource.txt:
destination.txt:
Danke schonmal im Voraus
Code: Alles auswählen
procedure TForm1.Button_performInstalClick(Sender: TObject);
{ dirs: TStringList;
recs: TStringList;
dest: TStringList; }
var
MaxCurSteps: Integer;
Step: Integer;
CurStep: Integer;
captions: String;
failes: Boolean;
str: String;
i: Integer;
File1,File2,File3: TextFile;
//----------------------------//
begin
dirs:= TStringList.create;
recs:= TStringList.create;
dest:= TStringList.create;
AssignFile(File1,'recource.txt');
AssignFile(File2,'dirs.txt');
AssignFile(File3,'destination.txt');
// Files auslesen
Reset(File1);
repeat
Readln(File1,str);
recs.Add(str);
until (EOF(File1));
CloseFile(File1);
//-----------------------------//
Reset(File2);
repeat
Readln(File2,str);
dirs.Add(str);
until (EOF(File2));
CloseFile(File2);
//-----------------------------//
Reset(File3);
repeat
Readln(File3,str);
dest.Add(str);
until (EOF(File3));
CloseFile(File3);
StaticText_download.visible:=true;
MaxCurSteps:= dirs.Count-1;
Step:=1;
for i:=0 to (dirs.Count+1) do
begin
CreateDir(InstalDir+'\'+dirs[i]);
CurStep:=i+1;
captions:= 'Installiere... : Schritt '+IntToStr(Step)+'/2 ('+IntToStr(CurStep)+'/'+IntToStr(MaxCurSteps-1)+')';
StaticText_download.caption:=captions;
ProgressBar_download.Max:=MaxCurSteps-1;
ProgressBar_download.position:=CurStep;
end;
MaxCurSteps:= dest.Count-1;
Step:=2;
FTPLogin(***,***,'mark332.bplaced.net','21');
for i:=0 to (dest.Count-1) do
begin
//if = true) then
FTPDownload(recs[i],InstalDir+'\'+dest[i]);
// begin
CurStep:=i+1;
captions:= 'Installiere... : Schritt '+IntToStr(Step)+'/2 ('+IntToStr(CurStep)+'/'+IntToStr(MaxCurSteps-1)+')';
StaticText_download.caption:=captions;
ProgressBar_download.Max:=MaxCurSteps-1;
ProgressBar_download.position:=CurStep;
// end
// else
// begin
// ShowMessage('Error occured!');
// failes:=true;;
// end;
end;
failes:=false;
if (failes=true) then
begin
ShowMessage('Es ist ein Fehler aufgetreten, setze Installation zurück!');
Sleep(500);
rmDir(InstalDir);
if FileExists('resource.txt') then
begin
DeleteFile('resource.txt')
end;
if FileExists('destination.txt') then
begin
DeleteFile('destination.txt')
end;
if FileExists('dirs.txt') then
begin
DeleteFile('dirs.txt')
end;
Application.Terminate;
end;
if not (failes=true) then
ShowMessage('Erfolgreich installiert!');
Button_prev.Enabled:=false;
x:=x+1;
LockExit:=false;
end;
Code: Alles auswählen
Minecraft Multilauncher
Minecraft Multilauncher\temp_mcml
Code: Alles auswählen
BVCD_win7.bat
BVCD_winXP.bat
FTB.exe
mcBVCD.jar
Minecraft Multilauncher.exe
Minecraft.exe
Minecraft_Multilauncher_Setup.exe
Settings.ini
skin.jpg
TechnicLauncher.exe
latest.jpg
Code: Alles auswählen
BVCD_win7.bat
BVCD_winXP.bat
FTB.exe
mcBVCD.jar
Minecraft Multilauncher.exe
Minecraft.exe
Minecraft_Multilauncher_Setup.exe
Settings.ini
skin.jpg
TechnicLauncher.exe
latest.jpg
Danke schonmal im Voraus
-
- Beiträge: 202
- Registriert: Do 16. Mai 2013, 13:49
- OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
- CPU-Target: AMD Octacore 4.0GHz
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
°_0 und ^^ und Danke :DDAchtzig hat geschrieben:FtpLogout war eine Procedure - keine Function :wink:
Aber schön, wenn Du nicht alles mit Copy und Paste machst.
-
- Beiträge: 298
- Registriert: Di 23. Nov 2010, 23:41
- OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
- CPU-Target: 32Bit/64Bit
- Wohnort: Geldern
- Kontaktdaten:
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Code: Alles auswählen
procedure TForm1.Button_performInstalClick(Sender: TObject);
{ dirs: TStringList; //hast Du die StringListen global definiert [udo]
recs: TStringList;
dest: TStringList; }
var
MaxCurSteps: Integer;
Step: Integer;
CurStep: Integer;
captions: String;
failes: Boolean;
str: String;
i: Integer;
File1,File2,File3: TextFile;
//----------------------------//
begin
dirs:= TStringList.create;
recs:= TStringList.create;
dest:= TStringList.create;
AssignFile(File1,'recource.txt');
AssignFile(File2,'dirs.txt');
AssignFile(File3,'destination.txt');
// Files auslesen
Reset(File1);
repeat
Readln(File1,str);
recs.Add(str);
until (EOF(File1));
CloseFile(File1);
//-----------------------------//
Reset(File2);
repeat
Readln(File2,str);
dirs.Add(str);
until (EOF(File2));
CloseFile(File2);
//-----------------------------//
Reset(File3);
repeat
Readln(File3,str);
dest.Add(str);
until (EOF(File3));
CloseFile(File3);
StaticText_download.visible:=true;
MaxCurSteps:= dirs.Count-1;
Step:=1;
for i:=0 to (dirs.Count+1) do // hier ist wohl ein Fehler, hier sollte dirs.Count-1 stehen oder? [udo]
...
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
-
- Beiträge: 202
- Registriert: Do 16. Mai 2013, 13:49
- OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
- CPU-Target: AMD Octacore 4.0GHz
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Ok for i:=0 to dirs.Count-1 do hat das Probolem behoben,
mein neues Problem ist, dass "ListIndex Out of Bounds (11) bekomme, wenn ich den beiden ausgelesenen Dateien auch nur eine Zeile anhänge !?
(Die Dateien haben dann 12 Zeilen)
Code: (Warum gibt es eig. die Spoiler-Funktion hier nicht?)
Jmd. von euch 'ne Idee
?
MfG
mark332
mein neues Problem ist, dass "ListIndex Out of Bounds (11) bekomme, wenn ich den beiden ausgelesenen Dateien auch nur eine Zeile anhänge !?
(Die Dateien haben dann 12 Zeilen)
Code: (Warum gibt es eig. die Spoiler-Funktion hier nicht?)
Code: Alles auswählen
procedure TForm1.Button_nextClick(Sender: TObject);
begin
x:= x+1
end;
procedure TForm1.Button_performInstalClick(Sender: TObject);
{ dirs: TStringList;
recs: TStringList;
dest: TStringList; }
var
MaxCurSteps: Integer;
Step: Integer;
CurStep: Integer;
captions: String;
failes: Boolean;
str: String;
i: Integer;
File1,File2,File3: TextFile;
//----------------------------//
begin
Button_prev.Enabled:=false;
dirs:= TStringList.create;
recs:= TStringList.create;
dest:= TStringList.create;
Memo_step.Lines.Add('Reading relevant Files...');
Sleep(8000);
AssignFile(File1,'recource.txt');
AssignFile(File2,'dirs.txt');
AssignFile(File3,'destination.txt');
// Files auslesen
Reset(File1);
repeat
Readln(File1,str);
recs.Add(str);
until (EOF(File1));
CloseFile(File1);
//-----------------------------//
Reset(File2);
repeat
Readln(File2,str);
dirs.Add(str);
until (EOF(File2));
CloseFile(File2);
//-----------------------------//
Reset(File3);
repeat
Readln(File3,str);
dest.Add(str);
until (EOF(File3));
CloseFile(File3);
StaticText_download.visible:=true;
MaxCurSteps:= dirs.Count;
Step:=1;
for i:=0 to (dirs.Count-1) do
begin
CreateDir(InstalDir);
CurStep:=i+1;
Memo_step.Lines.Add('Creating Directory cx1/2');
captions:= 'Installiere... : Schritt '+IntToStr(Step)+'/2 ('+IntToStr(CurStep)+'/'+IntToStr(MaxCurSteps)+')';
StaticText_download.caption:=captions;
ProgressBar_download.Max:=MaxCurSteps-1;
ProgressBar_download.position:=CurStep;
end;
// ---------- Mindestens bis hier ist kein Fehler aufgetreten --------------------
Sleep(500);
MaxCurSteps:= dest.Count;
Step:=2;
FTPLogin('***','***','***','***');
for i:=0 to dest.Count-1 do
begin
//if
Memo_step.Lines.Add ('');
if i = 4 then
begin
Memo_step.Lines.Add('Downloading '+recs[i]+' || This will take a while! ||');
end
else
begin
Memo_step.Lines.Add('Downloading '+recs[i]);
/end;
FTPDownload('source/'+recs[i],InstalDir+'\'+dest[i]);
Memo_step.Lines.Add('Extracting '+dest[i]);
Sleep(500);
// begin
CurStep:=i+1;
captions:= 'Installiere... : Schritt '+IntToStr(Step)+'/2 ('+IntToStr(CurStep)+'/'+IntToStr(MaxCurSteps)+')';
StaticText_download.caption:=captions;
ProgressBar_download.Max:=MaxCurSteps-1;
ProgressBar_download.position:=CurStep;
// end
// else
// begin
// ShowMessage('Error occured!');
// failes:=true;;
// end;
end;
failes:=false;
if (failes=true) then
begin
ShowMessage('Es ist ein Fehler aufgetreten, setze Installation zurück!');
Sleep(500);
rmDir(InstalDir);
if FileExists('resource.txt') then
begin
DeleteFile('resource.txt')
end;
if FileExists('destination.txt') then
begin
DeleteFile('destination.txt')
end;
if FileExists('dirs.txt') then
begin
DeleteFile('dirs.txt')
end;
Application.Terminate;
end;
if not (failes=true) then
ShowMessage('Erfolgreich installiert!');
Button_prev.Enabled:=false;
x:=x+1;
LockExit:=false;
end;

MfG
mark332
-
- Beiträge: 298
- Registriert: Di 23. Nov 2010, 23:41
- OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
- CPU-Target: 32Bit/64Bit
- Wohnort: Geldern
- Kontaktdaten:
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
ich habe mal was aufgeräumt damit man was erkennen kann!
Code: Alles auswählen
procedure TForm1.Button_nextClick(Sender: TObject);
begin
x := x+1
end;
procedure TForm1.Button_performInstalClick(Sender: TObject);
{ dirs: TStringList;
recs: TStringList;
dest: TStringList; }
var
MaxCurSteps, CurStep, i: Integer;
captions, str: String;
failes: Boolean;
File1,File2,File3: TextFile;
begin
Button_prev.Enabled:=false;
dirs:= TStringList.create;
recs:= TStringList.create;
dest:= TStringList.create;
Memo_step.Lines.Add('Reading relevant Files...');
Sleep(8000);
AssignFile(File1,'recource.txt');
AssignFile(File2,'dirs.txt');
AssignFile(File3,'destination.txt');
// Files auslesen
Reset(File1);
repeat
Readln(File1,str);
recs.Add(str);
until (EOF(File1));
CloseFile(File1);
//-----------------------------//
Reset(File2);
repeat
Readln(File2,str);
dirs.Add(str);
until (EOF(File2));
CloseFile(File2);
//-----------------------------//
Reset(File3);
repeat
Readln(File3,str);
dest.Add(str);
until (EOF(File3));
CloseFile(File3);
StaticText_download.visible:=true;
MaxCurSteps := dirs.Count;
ProgressBar_download.Max := MaxCurSteps; //die ändern sich nicht, also nicht in der Schleife
for i:=0 to (MaxCurSteps-1) do //wenn schon eine Variable dann auch gebrauchen
begin
CreateDir(dirs[i]); //??? Instal?Dir ???
CurStep := i + 1;
Memo_step.Lines.Add('Creating Directory cx1/2');
captions := 'Installiere... : Schritt 1/2 ('+IntToStr(CurStep) + '/' + IntToStr(MaxCurSteps) + ')';
StaticText_download.caption := captions;
ProgressBar_download.position := CurStep;
end;
// ---------- Mindestens bis hier ist kein Fehler aufgetreten --------------------
Sleep(500);
FTPLogin('***','***','***','***');
MaxCurSteps := dest.Count;
ProgressBar_download.Max := MaxCurSteps; //die ändern sich nicht, also nicht in der Schleife
for i:=0 to MaxCurSteps-1 do //i wird gesetzt über dest.count !!!!
begin
Memo_step.Lines.Add ('');
if i = 4 then
Memo_step.Lines.Add('Downloading '+recs[i]+' || This will take a while! ||') //Du greifst aber auf recs zu
else
Memo_step.Lines.Add('Downloading '+recs[i]); //Du greifst aber erneut auf recs zu (ist recs.count=dest.count) ???
FTPDownload('source/'+recs[i],InstalDir+''+dest[i]);
Memo_step.Lines.Add('Extracting '+dest[i]);
Sleep(500);
CurStep := i + 1;
captions:= 'Installiere... : Schritt 2/2 ('+IntToStr(CurStep)+'/'+IntToStr(MaxCurSteps)+')';
StaticText_download.caption := captions;
ProgressBar_download.position := CurStep;
end;
failes := false;
if (failes) then // hier geht es nie hinein
begin
ShowMessage('Es ist ein Fehler aufgetreten, setze Installation zurück!');
Sleep(500);
rmDir(InstalDir);
if FileExists('resource.txt') then
DeleteFile('resource.txt');
if FileExists('destination.txt') then
DeleteFile('destination.txt');
if FileExists('dirs.txt') then
DeleteFile('dirs.txt');
end;
Application.Terminate;
end;
if not (failes) then
ShowMessage('Erfolgreich installiert!');
Button_prev.Enabled:=false;
x:=x+1;
LockExit:=false;
end;
Zuletzt geändert von gocher am Mo 17. Jun 2013, 22:20, insgesamt 1-mal geändert.
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
-
- Beiträge: 202
- Registriert: Do 16. Mai 2013, 13:49
- OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
- CPU-Target: AMD Octacore 4.0GHz
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Danke 
Um die Lösung der Problems vielleicht etwas einfacher zu machen:
Die Stelle, zu der mich der Debugger bei der Fehlermeldung sendet:

Um die Lösung der Problems vielleicht etwas einfacher zu machen:
Die Stelle, zu der mich der Debugger bei der Fehlermeldung sendet:
Code: Alles auswählen
Datei/Unit: control.inc
Code: Alles auswählen
procedure TControl.Click;
begin
//DebugLn(['TControl.Click ',DbgSName(Self)]);
if Assigned(FOnClick) and (Action<>nil)
and (not CompareMethods(TMethod(Action.OnExecute),TMethod(FOnClick))) then
// the OnClick is set and differs from the Action => call the OnClick
FOnClick(Self)
else if (not (csDesigning in ComponentState)) and (ActionLink <> nil) then
ActionLink.Execute(Self)
else if Assigned(FOnClick) then
FOnClick(Self); //<-- Hier leitet der Debugger mich hin
end;
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?
-
- Beiträge: 298
- Registriert: Di 23. Nov 2010, 23:41
- OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
- CPU-Target: 32Bit/64Bit
- Wohnort: Geldern
- Kontaktdaten:
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Ich habe doch eigentlich die Fehlerstelle markiert, es ist das Problem i wird gesetzt über dest.count, Du greifst aber auf recs zu, wenn nun recs kürzer ist als dest knallt es! Sind bei Dir wirklich beide Dateien gleich lang, kein CrLf mehr oder weniger!?
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me
-
- Beiträge: 202
- Registriert: Do 16. Mai 2013, 13:49
- OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
- CPU-Target: AMD Octacore 4.0GHz
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Beide Dateien müssten genau 12 Zeilen lang sein, es sei denn, es ist was beim Up-/Download auf/vom Ftp schiefgelaufen, ich werde das morgen mal nachschaun...
-
- Beiträge: 145
- Registriert: So 22. Mär 2009, 07:48
- OS, Lazarus, FPC: WIN 11 (momentan )
- CPU-Target: 64 und 32Bit
- Wohnort: Hessen
- Kontaktdaten:
Re: Fehler beim Herunterladen mehrerer Dateien (FTP) ?!
Hallo Mark332,
ich kenne Dein Problem ja nicht.
Ich benutze auch Synapse und habe damit keine Probleme.
Ich denke, dass Dein Programm noch am arbeiten ist, währende Du dem Transfer, bzw. die Dateien gnadenlos wieder löschst.
Wenn ich nur enige Dateien benötige, wie du das ja auch beschrieben hast, dann ist das eigendlich mit "FtpGetFile" recht sicher.
Zudem bekommst du noch zu jedem Transfer eine Rückmeldung:
Mit freundlichem Gruß
Ralph
ich kenne Dein Problem ja nicht.
Ich benutze auch Synapse und habe damit keine Probleme.
Ich denke, dass Dein Programm noch am arbeiten ist, währende Du dem Transfer, bzw. die Dateien gnadenlos wieder löschst.
Wenn ich nur enige Dateien benötige, wie du das ja auch beschrieben hast, dann ist das eigendlich mit "FtpGetFile" recht sicher.
Zudem bekommst du noch zu jedem Transfer eine Rückmeldung:
Code: Alles auswählen
{:A very useful function, and example of use can be found in the TFtpSend object.
Dowload specified file from FTP server to LocalFile.}
function FtpGetFile(const IP, Port, FileName, LocalFile,
User, Pass: string): Boolean;
VAR
cip, cVerz, cDatei, cDateiLocal, cuser, cpw : String
Begin
//Variablen zuweisen
//...
// Also sollte so etwas gecht gut gehen:
if FtpGetFile(cip, '21', './'+cVerz+'/'+cDatei, cDateiLocal, cuser, cpw) = true then begin
// Hier habe ich in der Regel etwas Sourcecode, eintragungen in Datenbanken, LogFiles erstellen...
end else begin
showmessage('Achtung, konnte Die Datei nicht vom ... holen, ist das System am Netz, ist eine Verbindung vorhanden?');
end;
Ralph
Fehler sind wie Berge, man steht auf dem Gipfel seiner eigenen und redet über die der anderen.