dayofweek

  • 24 Apr

    File renaming logic using day of week function

    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

    Limagito File Mover Pascal Script

    • 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.

    Limagito File Mover Pascal Script Day of Week

    • Afterwards, adjust the File Rename option in your Destination setup:
    RegEx:  (.*)_(.*)\.(.*)
    Replacement:  \1_%VSA_%VSB.\3
    Limagito File Mover File Rename using RegEx
    – RunTime Log Result:
    Limagito File Mover RunTime Log

    #FileTransfer

    If you need any info about this  ‘day of week function’, please let us know.

    Best regards,

    Limagito Team

SEARCH