procedure TfrmBankenDownload.Button1Click(Sender: TObject);
var
iDOSDatumLokal: Integer;
dtWINDatumLokal : TDateTime;
sDateiEndung:
String;
begin
TRY
TRY
ftpDateiDownload.Username := '
admin';
ftpDateiDownload.Password := '
passwort';
ftpDateiDownload.Host := '
FTP SERVER';
ftpDateiDownload.Connect;
{Änderungsdatum der lokalen Datei herausfinden}
iDOSDatumLokal := FileAge('
C:\Importdateien\Datei.txt');
dtWINDatumLokal := FileDateToDateTime(iDOSDatumLokal);
{Abfrage, ob Datei auf Server aktueller als Datei Lokal}
if ftpDateiDownload.FileDate('
Datei.zip',false) > dtWINDatumLokal
then
if dlgDateiAbspeichern.Execute
then
begin
{Datei downloaden und entpacken}
ftpDateiDownload.Get('
Datei.zip', dlgDateiAbspeichern.FileName, false);
AbZIPEntpacken.FileName := '
C:\Importdateien\Datei_Neu.txt';
AbZIPEntpacken.BaseDirectory := '
C:\Importdateien\';
AbZIPEntpacken.ExtractFiles('
*.*');
{Tabelle leeren und neue Werte eintrage}
qTabelleLeeren.SQL.Text := '
DELETE FROM Tabelle';
qTabelleLeeren.ExecSQL;
{Werte aus Datei (csv oder txt) in Datenbank schreiben}
if dlgDateiEinelsen.Execute
then
sDateiendung := ExtractFileExt(ansilowercase(dlgDateiEinelsen.FileName));
if sDateiendung = '
.txt'
then
importFromTextfile(dlgDateiEinelsen.FileName)
else
importFromCSVfile(dlgDateiEinelsen.FileName);
end;
EXCEPT
MessageDlg('
Es ist ein Fehler beim Download aufgetreten, Prozess wird beendet', mtError, [mbOK], 0);
END;
FINALLY
ftpDateiDownload.Quit;
qTabelleLeeren.Close;
END;
end;