Hallo,
ich habe einen Server, auf dem ich per ftp jeden Tag eine csv Datei abhole, diese hat dann den Namen FILE_JJJJMMTT.csv (also mit dem täglichen Datum).
Das Ziel ist ein Windows Fileshare, dort benötige ich Datei mit dem Namen FILE.csv (also ohne Datum im Dateinamen).
Ist es irgendwie möglich, den Namen im Ziel beim kopieren entsprechend zu ändern?
Ideal wäre es natürlich, wenn die neueste Datei an eine ggf. bereits vorhandene angefügt werden würde (wobei hier das Problem wäre, dass die erste Zeile die Spaltenüberschriften enthält), es wäre aber auch OK, wenn am Ziel eine ggf. bereits vorhandene Datei überschrieben würde (bzw. vorher zur Sicherung umbenannt würde).
Danke & Ciao,
Alfred
Zieldateiname ändern
Re: Zieldateiname ändern
Hi,
ja, das geht alles mit PascalScript:
https://www.syncovery.com/pascalscript/
Ich werde hier mal ein Beispielscript posten.
ja, das geht alles mit PascalScript:
https://www.syncovery.com/pascalscript/
Ich werde hier mal ein Beispielscript posten.
Re: Zieldateiname ändern
Hi,
hier ist ein Beispiel für den angefragten Fall - allerdings hier erstmal nur die Umbenennung:
Dies kann man im Profil unter Allgemein->PascalScript... angeben.
hier ist ein Beispiel für den angefragten Fall - allerdings hier erstmal nur die Umbenennung:
Code: Select all
function OnReplaceFilenameLeftToRight(const FileName: UnicodeString;
const isFolder: Boolean):UnicodeString;
begin
if isFolder or (Copy(FileName,1,5)<>'FILE_') then
Result:=FileName
else
Result:='FILE.csv';
end;
Re: Zieldateiname ändern
Wenn man umbenennen und an eine bestehende Datei anfügen möchte, geht das ungefähr folgendermaßen (nicht getestet). Dann braucht man das obige Script nicht. Hinweis: dieses Script stoppt bei der ersten leeren Zeile das Einlesen der Quelldatei. Ich gehe davon aus, dass in Ihrer Quelldatei keine leeren Zeilen vorkommen, sodass dadurch das Ende der Datei erkannt werden kann.
Code: Select all
function OnFileCopy(const DirectionIsL2R:Boolean;
const Source,Dest,DestPath,LeftSubPath,RightSubPath:UnicodeString;
const SourceConnector,DestConnector: Opaque):Int64;
var src,dst:Opaque;
line:UnicodeString;
begin
Result:=1;
src:=OpenTextFile(Source);
if src=0 then
Exit;
dst:=AppendTextFile('D:\Zielordner\Zieldatei.csv');
if dst=0 then
Exit;
line:=ReadLine(src); // forget first line (headers)
repeat
line:=ReadLine(src);
if line<>'' then
WriteLine(dst,line);
until line='';
CloseFile(dst);
CloseFile(src);
Result:=0;
end;
Re: Zieldateiname ändern
Hallo tobias,
vielen Dank für die Antworten, das hat mir weitergeholfen.
Wie ich erfahren habe, wird immer eine vollständige Datei auf dem FTP Server abgelegt, d.h. ich habe jetzt ein Move Files definiert, der die Dateien im Ziel überschreibt und mit Hilfe deines ersten Scripts wird dabei der Name der Datei entsprechend angepasst.
Danke & Ciao, Alfred
vielen Dank für die Antworten, das hat mir weitergeholfen.
Wie ich erfahren habe, wird immer eine vollständige Datei auf dem FTP Server abgelegt, d.h. ich habe jetzt ein Move Files definiert, der die Dateien im Ziel überschreibt und mit Hilfe deines ersten Scripts wird dabei der Name der Datei entsprechend angepasst.
Danke & Ciao, Alfred