AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Delphi 10.4 - Indy und SFTP
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 10.4 - Indy und SFTP

Ein Thema von H.Bothur · begonnen am 11. Jul 2021 · letzter Beitrag vom 2. Mai 2023
Antwort Antwort
Seite 2 von 4     12 34      
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
535 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Delphi 10.4 - Indy und SFTP

  Alt 19. Jan 2023, 20:29
Ich verwende Winscp. Lässt sich einfach über Script steuern, wobei so ein da ein 3-Zeiler reicht um z.B. alle Daten eines Verzeichnisses hochzuladen.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Delphi 10.4 - Indy und SFTP

  Alt 20. Jan 2023, 07:20
.. möchte hier noch SecureBridge von DevArt erwähnen.
Kostet etwas - kommt ohne externe DLLs/Exen aus.
Sehr zuverlässig.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
257 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Delphi 10.4 - Indy und SFTP

  Alt 20. Jan 2023, 16:15
Moin,

hat keine eine Idee warum das Demoprogramm läuft und mein Miniprogramm nicht ? Ich habe mal versucht die Unterschiede rauszufinden. Das erste was mir auffällt ist das im Demoprogramm bereits zwei Libarys eingebunden werden:

Delphi-Quellcode:
  tgputtysftp in '..\tgputtysftp.pas',
  tgputtylib in '..\tgputtylib.pas';
Warum macht man so was wenn das eigentliche Programm in der Unit steckt und die Unit auch noch einmal die beiden Libarys in der Uses-Klausel aufführt ?

Zweitens: Im DemoProgramm wird die Variable (? Ist es das überhaupt) in dem private-Block vereinbart:

Delphi-Quellcode:
  private
    { Private declarations }
    PSFTP:TTGPuttySFTP;
Wenn ich das genauso mache und die TestSFTP Deklaration aus der var-Deklaration rausnehme und in den private-Block packe
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    TestSFTP :TTGPuttySFTP;
  public
    { Public-Deklarationen }
  end;
dann wird beim compilieren der erste Ausdruck   TestSFTP := TTGPuttySFTP.Create(true); gleich als "undeklarierter Bezeichner 'TestSFTP '" markiert und das Programm lässt sich nicht kompilieren.

Nur ... warum - was mache ich anders als das Demoprogramm ??

Gruss und Danke !
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Delphi 10.4 - Indy und SFTP

  Alt 20. Jan 2023, 16:20
.. wenn du die Instanz in einer Methode Deiner Form erstellst,
sollte die Klasse gefunden werden.

Wenn es eine Routine ausserhalb der TForm ist, kann sie nicht gefunden werden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
257 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Delphi 10.4 - Indy und SFTP

  Alt 20. Jan 2023, 16:26
.. wenn du die Instanz in einer Methode Deiner Form erstellst,
sollte die Klasse gefunden werden.

Wenn es eine Routine ausserhalb der TForm ist, kann sie nicht gefunden werden.
Danke - da habe ich mal wieder was dazugelernt ... jetzt kann ich das Programm wieder kompilieren und starten .. bekomme aber immer noch die Exception beim TestSFTP := TTGPuttySFTP.Create(true);

Hat jemand eine Idee dazu ?
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.939 Beiträge
 
Delphi 12 Athens
 
#16

AW: Delphi 10.4 - Indy und SFTP

  Alt 20. Jan 2023, 17:23
.. wie schon geschrieben geht das mit Indy nicht.

DevArt - secure Bridge und nsoft - IpWorks haben SFTP Bibliotheken - kostenpflichtig.
Auf Basis von putty kann man sich auch einen SFTP Client bauen - Beispiele sind im Netz zu finden.
Seit Wiendows 10 kann man auch einen SFTP Client von der Console aufrufen.

Grüße
Klaus
Kommerziell gibt's auch noch: Clever Internet Suite. Lt. GetIt Trial Eintrag kann es SFTP (SSH).

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Delphi 10.4 - Indy und SFTP

  Alt 20. Jan 2023, 18:35
.. ich bekomme da keinerlei Fehlermeldung beim Create.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 gsftp :TTGPuttySFTP;
begin
  gsftp := TTGPuttySFTP.Create(true);
  gpsftp.HostName := '192.168.178.43';
  gpsftp.UserName := 'pi';
  gpsftp.Password := '********';
  gpsftp.Port := 22;
  gpsftp.Connect;
end;
Build 19 - 06 Mar 2022

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
257 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Delphi 10.4 - Indy und SFTP

  Alt 20. Jan 2023, 19:52
.. ich bekomme da keinerlei Fehlermeldung beim Create.

Build 19 - 06 Mar 2022

Grüße
Klaus
Und deswegen nehme ich an das ich bei den Einstellungen / Directorys usw. einen Fehler mache. Nur welchen ?
Ich habe den kompletten Pfad zu den Sources in der Bibliothek, setze das USE richtig ... und trotzdem PENG beim Connect.

Ich habe auch mal die entsprechende Libaray mit debugged, beim Create wird dann geprüft ob die TGPuttyLibAvailable ist und darin dann wieder irgendwelche StructSizes:

Delphi-Quellcode:
unction TGPuttyLibAvailable:Boolean;
var libpath:string;
    ulongsize,namesize,attrsize,namessize:Integer;

procedure CheckStructSizes;
begin
  tggetstructsizes(@ulongsize,@namesize,@attrsize,@namessize);
  if (ulongsize<>sizeof(TUnsignedLong)) or
     (namesize<>sizeof(fxp_name)) or
     (attrsize<>sizeof(fxp_attrs)) or
     (namessize<>sizeof(fxp_names)) then begin
     raise Exception.Create('Invalid '+tgputtydll+
                 ': uses different struct sizes: '+
                 'ulongsize='+IntToStr(ulongsize)+'/'+IntToStr(sizeof(TUnsignedLong))+
                 ',namesize='+IntToStr(namesize)+'/'+IntToStr(sizeof(fxp_name))+
                 ',attrsize='+IntToStr(attrsize)+'/'+IntToStr(sizeof(fxp_attrs))+
                 ',namessize='+IntToStr(namessize)+'/'+IntToStr(sizeof(fxp_names)));
     end
  end;
begin
  {$ifdef MSWINDOWS}
  Result:=true;
  CheckStructSizes;
  {$else}
  if TGPLH>0 then begin
     Result:=Assigned(tgputty_initcontext);
     Exit;
     end;

In meinem Testprogramm knallt es gleich bei dem ersten Test in folgender Zerile:

procedure tggetstructsizes(const Pulongsize,Pnamesize,Pattrsize,Pnamessize:PInteger); cdecl; external tgputtydll {$ifdef HASDELAYED}delayed{$endif}; Nur leider sind das für mich endgültig bömische Dörfer ... sagt das jemandem was ??

Gruss
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Delphi 10.4 - Indy und SFTP

  Alt 21. Jan 2023, 09:46
Guten Morgen,

hast Du diese dll (tgputtylib.dll) in dem gleichen Verzeichnis wo Deine exe liegt?

im Project Source

Delphi-Quellcode:
program Project1;
uses
  Vcl.Forms,
  Unit1 in 'Unit1.pas{Form1},
  tgputtylib in 'tgputtylib.pas',
  tgputtysftp in 'tgputtysftp.pas',
  tgputtysftpclient in 'tgputtysftpclient.pas';
In der From Unit:
Delphi-Quellcode:
implementation
uses
  tgputtylib, tgputtysftp;
{$R *.dfm}
Mehr habe ich nicht geändert.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
257 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Delphi 10.4 - Indy und SFTP

  Alt 21. Jan 2023, 13:38
Moin Klaus,

nein - die DLL hatte ich bisher nicht im Verzeichnis - jetzt ist sie drin.

Es ändert sich nur leider überhaupt nichts, es knallt immer noch und Delphi sucht dann die Quelldatei "delayhlp.cpp" ??
Und zawr passiert das genau an dieser Stelle:

function tggetlibrarycontextsize:Integer; cdecl; external tgputtydll {$ifdef HASDELAYED}delayed{$endif}; Sagt das jemandem was ??

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz