Moin,
ich habe hier ein Problem mit tgputtysftp das ich nicht verstehe:
ich habe auf dem Server ein Verzeichnis mit 40 Dateien, diese lese ich mit folgendem Code ein:
aus tgputtysftp:
Delphi-Quellcode:
function ls_callback(const names:Pfxp_names;const libctx:PTGLibraryContext):Boolean; cdecl;
var TGPSFTP:TTGPuttySFTP;
begin
TGPSFTP:=TTGPuttySFTP(libctx.Tag);
if Assigned(TGPSFTP.OnListing) then Result:=TGPSFTP.OnListing(names)
else Result:=true;
end;
Eigener Source:
Delphi-Quellcode:
function TTestForm.ListingCallback(const names: Pfxp_names): Boolean;
var StartRow,
i: Integer;
begin
Dateiliste.Clear;
for i := 0 to names.nnames -1 do
begin
DateiListe.Add(Utf8ToString(Pfxp_name_array(names.names)[i].filename));
end;
Result := true;
end;
und
Delphi-Quellcode:
TestFuerLbl.Caption := 'Test auf Daten / ZRBeleg';
TestForm.TestSFTP.ChangeDir('../ZRBELEG');
TestForm.TestSFTP.Listdir('.');
Wenn ich das laufen lasse und mir stepweise Dateiliste anschaue dann ist Dateiliste nach dem Durchlau in ListingCallback auch mit 40 Dateien gefüllt. Dann wird aber die function ls_callback zweimal (!) aufgerufen. Nach dem ersten Mal sind immer noch 40 Dateien in der Dateiliste, nach dem zweiten Mal ist names.nnames aber nur 24 und daher sind auch nur noch 24 Dateien vorhanden.
Ich habe von dem ls_callback und was da passiert überhaupt keine Ahnung - woran kann das liegen und vor allem - wie kann ich das umgehen ?
Hans