FTP - Pfad eintragen

14. Oktober 2008 08:57

Hallo zusammen,

vielleicht ist das ja einfach und ich stell mich wieder ungeschickt an aber wie kann ich fest einen bestimmten FTP- Pfad eintragen ?!
so ja nun nicht: \\IP\Ordner
das Prob ist halt folgendes - über FTP folgendes umsetzen :
TESTFILE.CREATE('i:\public\DATEINAME.DAT);

--wobei i: einfach eine FTP Adresse ist !

TESTFILE.CREATEOUTSTREAM(TESTSTREAM);

Kann mir da jemand helfen ?

Re: FTP - Pfad eintragen

14. Oktober 2008 09:19

Ich würde die Datei lokal erzeugen und per Windows Scriptiong Host und Shellaufrufen anschließend hochladen. Der FTP-Client ist ja in Windows integriert.

Re: FTP - Pfad eintragen

14. Oktober 2008 09:28

Hallo, habe vor kurzem mal folgende Funktion programmiert:


FTP-Export

Parameter:

Var Name DataType Subtype Length
Nein ScriptFilePath_iTxt Text 250
Nein Host_iTxt Text 15
Nein User_iTxt Text 30
Nein Password_iTxt Text 30

Variablen:

Name DataType Subtype Length
FTPScriptFilePath_lTxt Text 250
FTPScript_lFle File
WshShell_lAut Automation 'Windows Script Host Object Model'.WshShell
Command_lTxt Text 250
WindowStyle_lTxt Text 1
WaitOnReturn_lBln Boolean

Code:

// Erstellen des FTP-Scriptes
FTPScriptFilePath_lTxt := ScriptFilePath_iTxt + 'script.txt';
FTPScript_lFle.CREATE(FTPScriptFilePath_lTxt); // Script-Datei erstellen
FTPScript_lFle.TEXTMODE(TRUE); // ASCII-Datei
FTPScript_lFle.WRITE(User_iTxt); // User
FTPScript_lFle.WRITE(Password_iTxt); // Password
FTPScript_lFle.WRITE('binary'); // Datenübertragungsmodus "Binär" einstellen
FTPScript_lFle.WRITE('Put' + ' ' + FilePath_gTxt + Filename_gTxt); // Datei kopieren
FTPScript_lFle.WRITE('quit'); // FTP-Sitzung beenden
FTPScript_lFle.CLOSE; // Script-Datei schliessen

// FTP-Transfer ausführen
CREATE(WshShell_lAut); // Automation Object erstellen
WindowStyle_lTxt := '1'; // Kommandozeile verstecken
WaitOnReturn_lBln := TRUE; // Auf Kommando warten
CLEAR(Command_lTxt);
Command_lTxt := 'ftp -s:' + FTPScriptFilePath_lTxt + ' ' + Host_iTxt; // Kommando aufbauen
WshShell_lAut.Run(Command_lTxt, WindowStyle_lTxt, // Automation Object ausführen
WaitOnReturn_lBln);

// Löschen des FTP-Scriptes da lesbarer User + PW
IF EXISTS(FTPScriptFilePath_lTxt) THEN BEGIN // Überprüfen ob Script-Datei existiert
FILE.ERASE(FTPScriptFilePath_lTxt); // Script-Datei löschen
END;


Das ganze hat den Vorteil, das man z.B. in einer Tabelle/Form Einrichtungsfelder anlegen kann und mit den dort eingetragenen Daten über die Funktion flexibel auf einen FTP-Server exportieren kann. Zum Verständnis was die Variablen-Bezeichnungen betrifft:
g = globale Variable
l = lokale Variable
i = Paramater

Re: FTP - Pfad eintragen

14. Oktober 2008 09:59

Hallo T.Schaedel und JDA88 ,

euer Quelltext ist leichter zu lesen und zu verstehen, wenn du ihn zwischen so genannte Code-Tags setzt. Insbesondere deine Formatierungen werden so auch beibehalten.

Daher bitten wir euch, vor und nach eurem Quelltext diese Code-Tags einzufügen. Beispiel:


[code]Euer Quelltext[/code]

Gruß, Natalie
MSDynamics.de-Team

Re: FTP - Pfad eintragen

14. Oktober 2008 11:01

Danke !
Das war äußerst Hilfreich !

Mfg