Difference between revisions of "ReNamer:Pascal Script:FileName"
(source tags) |
|||
Line 3: | Line 3: | ||
The essence of ReNamer's PascalScript is hidden under a very meaningful name – the FileName variable. It's declaration looks like that: | The essence of ReNamer's PascalScript is hidden under a very meaningful name – the FileName variable. It's declaration looks like that: | ||
− | < | + | <source> |
var FileName: WideString; | var FileName: WideString; | ||
− | </ | + | </source> |
which means it is a variable of the WideString type. | which means it is a variable of the WideString type. | ||
Line 15: | Line 15: | ||
Renaming of files with PascalScript consist of changing the contents of the FileName variable. So if you want to add ''"VIP "'' as a prefix to the present filename you would need such a script: | Renaming of files with PascalScript consist of changing the contents of the FileName variable. So if you want to add ''"VIP "'' as a prefix to the present filename you would need such a script: | ||
− | < | + | <source> |
begin | begin | ||
FileName := 'VIP ' + FileName; | FileName := 'VIP ' + FileName; | ||
end. | end. | ||
− | </ | + | </source> |
+ | |||
This will change a FileName from ''"file.txt"'' to ''"VIP file.txt"'' which will cause ''"d:\test\file.txt"'' file to be renamed into ''"d:\test\VIP file.txt"''. | This will change a FileName from ''"file.txt"'' to ''"VIP file.txt"'' which will cause ''"d:\test\file.txt"'' file to be renamed into ''"d:\test\VIP file.txt"''. | ||
Line 25: | Line 26: | ||
Using the same method (adding a prefix) you might also move a file to a different folder. | Using the same method (adding a prefix) you might also move a file to a different folder. | ||
− | < | + | |
+ | <source> | ||
begin | begin | ||
FileName := 'd:\movetest\' + FileName; | FileName := 'd:\movetest\' + FileName; | ||
end. | end. | ||
− | </ | + | </source> |
+ | |||
This will change a FileName variable from ''"file.txt"'' to ''"d:\movetest\file.txt"'' and will cause moving a file ''"d:\test\file.txt"'' to ''"d:\movetest\file.txt"''. If the ''"d:\movetest\"'' folder doesn't exist, it will be created. | This will change a FileName variable from ''"file.txt"'' to ''"d:\movetest\file.txt"'' and will cause moving a file ''"d:\test\file.txt"'' to ''"d:\movetest\file.txt"''. If the ''"d:\movetest\"'' folder doesn't exist, it will be created. | ||
Line 35: | Line 38: | ||
You don't have to specify the explicit path to the file you want to move. | You don't have to specify the explicit path to the file you want to move. | ||
− | < | + | |
+ | <source> | ||
begin | begin | ||
FileName := 'subfolder\' + FileName; | FileName := 'subfolder\' + FileName; | ||
end. | end. | ||
− | </ | + | </source> |
+ | |||
This will change the contents of the FileName variable from ''"file.txt"'' to ''"subfolder\file.txt"'' and will cause moving a file ''"d:\test\file.txt"'' into ''"d:\test\subfolder\file.txt"''. | This will change the contents of the FileName variable from ''"file.txt"'' to ''"subfolder\file.txt"'' and will cause moving a file ''"d:\test\file.txt"'' into ''"d:\test\subfolder\file.txt"''. | ||
Revision as of 02:10, 3 August 2009
FileName variable or How to rename a file
The essence of ReNamer's PascalScript is hidden under a very meaningful name – the FileName variable. It's declaration looks like that:
var FileName: WideString;
which means it is a variable of the WideString type.
A prefix Wide in datatype or function name is used to emphasise that this type/function is capable to work with Unicode characters. FileName variable is the only built-in variable in ReNamer's PascalScript which means that you don't have to declare it. It's already there. When the execution of the script starts FileName variable contains a name of the currently processed file without a path but with extention (e.g. "file.txt").
Add a prefix to a filename
Renaming of files with PascalScript consist of changing the contents of the FileName variable. So if you want to add "VIP " as a prefix to the present filename you would need such a script:
begin
FileName := 'VIP ' + FileName;
end.
This will change a FileName from "file.txt" to "VIP file.txt" which will cause "d:\test\file.txt" file to be renamed into "d:\test\VIP file.txt".
Move file to absolute folder
Using the same method (adding a prefix) you might also move a file to a different folder.
begin
FileName := 'd:\movetest\' + FileName;
end.
This will change a FileName variable from "file.txt" to "d:\movetest\file.txt" and will cause moving a file "d:\test\file.txt" to "d:\movetest\file.txt". If the "d:\movetest\" folder doesn't exist, it will be created.
Move file to relative folder
You don't have to specify the explicit path to the file you want to move.
begin
FileName := 'subfolder\' + FileName;
end.
This will change the contents of the FileName variable from "file.txt" to "subfolder\file.txt" and will cause moving a file "d:\test\file.txt" into "d:\test\subfolder\file.txt".
Let's stop here and see how does it work
After the execution of the script ends, the content of the FileName variable is passed to the NewName field of the files table.
What happens next has nothing to do with PascalScript. It works for all the rule types.
If NewName field contains an explicit path (a path that starts from a drive, eg. "d:\test\newname.txt") it will be copied to the NewPath field.
If NewName field contains a relative path (eg. "file.txt" or "movetest\file.txt"), NewPath field will be created from the old path of the file and the NewName.
A simple example will make all things clear
Let's say we have a file "file.txt" with Path "d:\test\file.txt" and our rules produced a NewName "movetest\file.txt".
ReNamer truncates the filename from the end of the Path (now we"ve got "d:\test\") and adds a NewName to it. So at the end we've got NewPath field filled with "d:\test\movetest\file.txt".
When you press Rename button, ReNamer will try to rename files in the files table according to the Path and NewPath fields. It will simply move a file from Path (eg. "d:\test\file.txt") to NewPath (eg. "d:\test\VIP file.txt").
What we need to remember is that NewName (FileName in case of PascalScript) shouldn't start with a "\", cause in this case we will get it doubled (eg. "d:\test\\movetest\file.txt") in the new filename and we'll get a warning about "invalid filename".