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
Happy Easter,
Limagito Team