File Mover Blog

November 24, 2018

Pascal Script, User Request Example No 1

Dear Users,

We often get user specific questions. Not every request goes into our file transfer tool as an option. In such cases (and if it is possible) we create a custom Pascal Script for the end user.

Example No1:

People are asking a lot to LimagitoX. Today, a user asked me if I can make a LimagitoX rule with a filter on the number of lines in a file.

Example:  Transfer the file if it contains more than 300 records.  The file type is *.txt

The rule will be:

Transfer files with less than 300 lines in weekday.

Transfer files with more than 300 lines on Sunday.

No transfer on Saturday.

Do you think you can add such a kind of filter?

 

For this request we created the ‘On Destination’ Pascal Script below. IMPORTANT: Be sure you set the file filter to only allow *.txt files

Var
  tmpList: TStringList;
  tmpNow: TDateTime;
Begin
  psExitCode:= 0;
  // ... add your code here
  tmpList := TStringList.Create;
  Try
    Try
      tmpList.LoadFromFile(psFilePath + psFileName);
      tmpNow := Now;
      // Transfer files with less than 300 lines in weekday ( 1 .. 5 ).
      If (tmpList.Count < 300) And (DayOfTheWeek(tmpNow) < 6) Then Begin psLogWrite(1, '', 'Line Count of ' + psFilePath + psFileName + ' = ' + IntToStr(tmpList.Count)); psLogWrite(1, '', 'Day Of The Week is ' + IntToStr(DayOfTheWeek(tmpNow))); psExitCode := 1; End; // Transfer files with more than 300 lines on Sunday ( 7 ). If (tmpList.Count > 300) And (DayOfTheWeek(tmpNow) = 7) Then
      Begin
        psLogWrite(1, '', 'Line Count of ' + psFilePath + psFileName + ' = ' + IntToStr(tmpList.Count));
        psLogWrite(1, '', 'Day Of The Week is ' + IntToStr(DayOfTheWeek(tmpNow)));
        psExitCode := 1;
      End;
    Except
      psLogWrite(1, '', 'Exception error on loading ' + psFilePath + psFileName);
    End;
  Finally
    tmpList.free;
  End;
End.
By Limagito-Team Pascal Script , Share:
SEARCH