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