Q: Read first line of a file and move to a specific folder. I have some files that sit on a server and I would like to move them off to archive. Each file has a code in the first line that tells me where the file came from. The files are regular text (.txt) files. How can I set up Limagito to move the file based on that code? If the code contains B01, move to a folder named Branch1. If the code contains B02, move to a folder named Branch2. The code will usually have more letters surrounding the B01 and B02, so I need the logic to pick up on B01 and B02 being in the code.
A: Yes this is possible. All you need a simple Pascal Script. We’ve added some screenshots to get you started.
As a start we added a new Moving Rule with WIN as Source. In the windows source folder we added some txt files. We’ll read the first line and check if certain codes exists (B01, B02, ..). Depending on the code found we’ll use a different subfolder of the Destination folder. If this subfolder doesn’t exist then we’ll create it.
1.Please open the Pascal Script option:
2. Enable and add the following ‘On Destination’ Pascal Script:
var
tmpLine: String;
tmpList: TStringList;
Begin
psExitCode:= 0;
psVSA := 'Unknown'
// ... add your code here
tmpList := TStringList.Create;
Try
try
tmpList.LoadFromFile(psFilePath + psFileName);
// Check First Line
If tmpList.Count <> 0 Then
Begin
tmpLine := UpperCase(tmpList.Strings[0]);
psLogWrite(1, '', 'First Line: ' + tmpLine);
// check
If Pos('B01', tmpLine) <> 0 Then psVSA := 'Alabama';
If Pos('B02', tmpLine) <> 0 Then psVSA := 'Alaska';
If Pos('B03', tmpLine) <> 0 Then psVSA := 'Arizona';
If Pos('B04', tmpLine) <> 0 Then psVSA := 'Arkansas';
If Pos('B05', tmpLine) <> 0 Then psVSA := 'California';
If Pos('B06', tmpLine) <> 0 Then psVSA := 'Colorado';
If Pos('B07', tmpLine) <> 0 Then psVSA := 'Connecticut';
If Pos('B08', tmpLine) <> 0 Then psVSA := 'Delaware';
If Pos('B09', tmpLine) <> 0 Then psVSA := 'Florida';
If Pos('B10', tmpLine) <> 0 Then psVSA := 'Georgia';
// Set ExitCode
psLogWrite(1, '', 'Subfolder which will be used ' + psVSA);
psExitCode := 1;
End
Else
psLogWrite(1, '', 'Error no lines in ' + psFilePath + psFileName);
Except
psLogWrite(1, '', 'Error when loading ' + psFilePath + psFileName);
End;
Finally
tmpList.Free;
End;
End.
3. Destination Setup, Create Subdir, option: %VSA
4. RunTime Log Result
5. Destination SubFolder Structure, if subfolder doesn’t exist then it will be create by our File Mover:
#FileTransfer
If you need any
help with this ‘Read first line of a file’ request, please let us know.
Happy Easter,
Limagito Team