Q: We need the dates tv listing dates moved to publications dates. This newspaper publishes 3 days a week, Wednesday, Friday and Saturday. In order to automatically flow the graphic onto the page, the file name needs to match the publication date.
We need the following logic,
- Wednesday graphic gets Wednesday date,
- Thursday graphic gets Wednesday date (the day before)
- Friday graphic gets Friday date
- Saturday graphic gets Friday date (the day before)
- Sunday / Monday / Tuesday graphics get the previous Saturday date.
For example:
Sunday / Monday / Tuesday dates:
- PH_20230423.pdf
- PH_20230424.pdf
- PH_20230425.pdf
We’d want renamed to
- PH_Sun_20230422.pdf
- PH__Mon_20230422.pdf
- PH_Tues_20230422.pdf
Technically the “Sun”, “Mon”, “Tues” could be anything as long as they’re unique and predictable.
Moving onto the next set:
- PH_20230426.pdf
- PH_20230427.pdf
Would be renamed to
- PH_Wed_20230426.pdf
- PH_Thurs_20230426.pdf
And finally:
- PH_20230428.pdf
- PH_20230429.pdf
Would be renamed to
- PH_Fri_20230428.pdf
- PH_Sat_20230428.pdf
A: Yes this is possible using our Mover Pascal Script and Destination RegEx renaming options.
- Open ‘Pascal Script’ setup
- Enable and add the following ‘On Destination’ Pascal Script:
Var
tmpLen: Integer;
tmpDateStr, tmpFilePart: String;
tmpDate1, tmpDate2: TDateTime;
Begin
psExitCode:= 1;
// ... add your code here
// PH_20230423.pdf > PH_Sun_20230422.pdf
tmpDateStr := psFileName;
tmpDateStr := psStringReplace(tmpDateStr, '.pdf', '');
tmpLen := Length(tmpDateStr);
If tmpLen >= 8 Then
Begin
tmpDateStr := Copy(tmpDateStr, tmpLen - 8 + 1, 8);
tmpDate1 := psStrToDate(tmpDateStr, 'YYYYMMDD', #0);
Case DayOfWeek(tmpDate1) of
1: // Sunday
tmpDate2 := psIncDay(tmpDate1, -1);
2: // Monday
tmpDate2 := psIncDay(tmpDate1, -2);
3: // Tuesday
tmpDate2 := psIncDay(tmpDate1, -3);
4: // Wednesday
tmpDate2 := tmpDate1;
5: // Thursday
tmpDate2 := psIncDay(tmpDate1, -1);
6: // Friday
tmpDate2 := tmpDate1;
7: // Saturday
tmpDate2 := psIncDay(tmpDate1, -1);
Else
psExitCode := 0; // Error
End;
psVSA := FormatDateTime('DDD', tmpDate1);
psVSB := FormatDateTime('YYYYMMDD', tmpDate2);
psLogWrite(1, '', 'Date: ' + psVSB + ', Day: ' + psVSA);
End
Else
psLogWrite(1, '', 'Length error of ' + tmpDateStr);
End.
- Afterwards, adjust the File Rename option in your Destination setup:
#FileTransfer
Best regards,
Limagito Team