Var tmpDate1: TDateTime; tmpDate1Str, tmpDate2Str: String; tmpList: TStringList; tmpWeek: String; Const ctDateParts = 3; Begin // Init Var psExitCode:= 1; psVSA := psFileName; // Convert DateTime Part tmpList := TStringList.Create; Try tmpList.QuoteChar := #0; tmpList.Delimiter := '-'; tmpList.StrictDelimiter := True; tmpList.DelimitedText := psFileName; // If tmpList.Count > ctDateParts Then Begin tmpDate1Str := tmpList.Strings[0] + '-' + tmpList.Strings[1] + '-' + tmpList.Strings[2]; Try tmpDate1 := psStrToDate(tmpDate1Str, 'dd-mm-yyyy', '-'); // Only handle valid date in filename If tmpDate1 <> 0 Then Begin tmpDate2Str := IntToStr(WeekOfTheYear(tmpDate1)); tmpDate2Str := psLeftPad(tmpDate2Str, '0', 2); tmpDate2Str := FormatDateTime('YYYY', tmpDate1) + tmpDate2Str; psLogWrite(1, '', 'Converted ' + tmpDate1Str + ' to ' + tmpDate2Str + ', file: ' + psFileName); // psVSA := psStringReplace(psVSA, tmpDate1Str, tmpDate2Str); End; Except psLogWrite(1, '', 'Error converting DatePart from ' + psFileName); End; End; Finally tmpList.Free; End; End.