<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.den4b.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Narayan</id>
	<title>den4b Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.den4b.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Narayan"/>
	<link rel="alternate" type="text/html" href="https://www.den4b.com/wiki/Special:Contributions/Narayan"/>
	<updated>2026-05-05T05:50:14Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Scripts&amp;diff=3292</id>
		<title>ReNamer:Scripts</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Scripts&amp;diff=3292"/>
		<updated>2019-05-20T09:39:40Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* 3rd party libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|ReNamer:Pascal Script}}&lt;br /&gt;
&lt;br /&gt;
This page contains a collection of scripts which can be used in [[ReNamer]]&#039;s [[ReNamer:Rules:PascalScript|PascalScript rule]].&lt;br /&gt;
&lt;br /&gt;
== Educational scripts ==&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Initialize|Initialize]]&lt;br /&gt;
| How to initialize the code.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Import DLL|Import DLL]]&lt;br /&gt;
| Demonstrates how to call functions of 3rd party DLL.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Date and Time|Date and Time]]&lt;br /&gt;
| How to use date and time of the file.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Move filename portion|Move filename portion]]&lt;br /&gt;
| How to move part of the filename to a new position.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Index filenames|Index filenames]]&lt;br /&gt;
| How to insert an incrementing number into the filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries ==&lt;br /&gt;
&lt;br /&gt;
Each of these scripts needs a third-party software (&amp;quot;library&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Download the software as directed, and place in a particular folder.&amp;lt;/br&amp;gt; Then copy the script into the PascalScript Rule and save it. &amp;lt;/br&amp;gt;Restart ReNamer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script&lt;br /&gt;
! Description&lt;br /&gt;
! Forum Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:TrID|TrID]]&lt;br /&gt;
| Detecting file extension.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=550&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Xpdf|Xpdf]]&lt;br /&gt;
| Extract PDF tags.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=349&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Exiv2|Exiv2]]&lt;br /&gt;
| Extract EXIF/IPTC/XMP tags from any images.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=407&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?id=109&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:MediaInfo|MediaInfo]]&lt;br /&gt;
| Extract meta information from audio and video files.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User scripts  ==&lt;br /&gt;
The following scripts are taken from the User forum. In some cases, links are provided to the thread, so that you can check the details of the use case.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script &lt;br /&gt;
! Description &lt;br /&gt;
! Forum Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Separate words|Separate words]]&lt;br /&gt;
| Insert a space in front of each capitalized letter.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=2529#p2529&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:AVI video codec|AVI video codec]]&lt;br /&gt;
| Extract name of video codec used encoding AVI file.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=3484#p3484&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:RegEx Case Convertion|RegEx Case Convertion]]&lt;br /&gt;
| Convert case of capturing groups of your regular expression.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=3454#p3454&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?pid=3459#p3459&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Using MasterFile|Using MasterFile]]&lt;br /&gt;
| Renaming folder basing on the MetaTag of the first file in the folder. In this particular case: adding the ID3_Year metatag from the mp3 file to it&#039;s parent folder name.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=1626#p1626&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Hours span|Hours span]]&lt;br /&gt;
| Add hours to a date embedded in the filename in format &amp;quot;yyyy-mm-dd hh-nn-ss.JPG&amp;quot;.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=696&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Roman numerals serialization|Roman numerals serialization]]&lt;br /&gt;
| Serialization with Roman numerals.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=828&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?pid=3327#p3327&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:EAN-13|EAN-13 checksum]]&lt;br /&gt;
| Calculate the checksum digit for the [http://en.wikipedia.org/wiki/EAN-13 EAN-13 barcode].&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=930&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Serialize duplicates|Serialize duplicates]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Serialize duplicated filenames by append a counter to the filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Partial case change|Partial case change]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Change case of specific parts of the file name.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:URL decode|URL decode]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Decode a URL encoded filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Index files per folder|Index files per folder]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| This script adds a serialization index to the end of every file on per folder basis. The index is incremented only when the folder path changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Random characters and length|Random characters and length]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Generate new names consisting of random selection of characters and of random length.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Convert file content from ANSI to UTF-8|Convert file content from ANSI to UTF-8]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Convert the content of processed files from ANSI (default system code page) to UTF-8 encoding.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;br /&gt;
[[Category:Pascal Script]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Scripts&amp;diff=3291</id>
		<title>ReNamer:Scripts</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Scripts&amp;diff=3291"/>
		<updated>2019-05-20T09:38:44Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|ReNamer:Pascal Script}}&lt;br /&gt;
&lt;br /&gt;
This page contains a collection of scripts which can be used in [[ReNamer]]&#039;s [[ReNamer:Rules:PascalScript|PascalScript rule]].&lt;br /&gt;
&lt;br /&gt;
== Educational scripts ==&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Initialize|Initialize]]&lt;br /&gt;
| How to initialize the code.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Import DLL|Import DLL]]&lt;br /&gt;
| Demonstrates how to call functions of 3rd party DLL.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Date and Time|Date and Time]]&lt;br /&gt;
| How to use date and time of the file.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Move filename portion|Move filename portion]]&lt;br /&gt;
| How to move part of the filename to a new position.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Index filenames|Index filenames]]&lt;br /&gt;
| How to insert an incrementing number into the filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries ==&lt;br /&gt;
&lt;br /&gt;
Each of these scripts needs a third-party software (&amp;quot;library&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Download the software as directed, and place in a particular folder.&amp;lt;/br&amp;gt; Then copy the script into the PascalScript Rule and save it. &amp;lt;/br&amp;gt;Restart ReNamer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script&lt;br /&gt;
! Description&lt;br /&gt;
! Forum Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:TrID|TrID]]&lt;br /&gt;
| Detecting file extension.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=550&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Xpdf|Xpdf]]&lt;br /&gt;
| Extract PDF tags.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=349&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Exiv2|Exiv2]]&lt;br /&gt;
| Extract EXIF/IPTC/XMP tags from any images.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=407&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?id=109&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:MediaInfo|MediaInfo]]&lt;br /&gt;
| Extract meta information from audio and video files.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User scripts  ==&lt;br /&gt;
The following scripts are taken from the User forum. In some cases, links are provided to the thread, so that you can check the details of the use case.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script &lt;br /&gt;
! Description &lt;br /&gt;
! Forum Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Separate words|Separate words]]&lt;br /&gt;
| Insert a space in front of each capitalized letter.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=2529#p2529&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:AVI video codec|AVI video codec]]&lt;br /&gt;
| Extract name of video codec used encoding AVI file.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=3484#p3484&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:RegEx Case Convertion|RegEx Case Convertion]]&lt;br /&gt;
| Convert case of capturing groups of your regular expression.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=3454#p3454&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?pid=3459#p3459&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Using MasterFile|Using MasterFile]]&lt;br /&gt;
| Renaming folder basing on the MetaTag of the first file in the folder. In this particular case: adding the ID3_Year metatag from the mp3 file to it&#039;s parent folder name.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=1626#p1626&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Hours span|Hours span]]&lt;br /&gt;
| Add hours to a date embedded in the filename in format &amp;quot;yyyy-mm-dd hh-nn-ss.JPG&amp;quot;.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=696&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Roman numerals serialization|Roman numerals serialization]]&lt;br /&gt;
| Serialization with Roman numerals.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=828&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?pid=3327#p3327&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:EAN-13|EAN-13 checksum]]&lt;br /&gt;
| Calculate the checksum digit for the [http://en.wikipedia.org/wiki/EAN-13 EAN-13 barcode].&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=930&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Serialize duplicates|Serialize duplicates]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Serialize duplicated filenames by append a counter to the filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Partial case change|Partial case change]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Change case of specific parts of the file name.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:URL decode|URL decode]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Decode a URL encoded filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Index files per folder|Index files per folder]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| This script adds a serialization index to the end of every file on per folder basis. The index is incremented only when the folder path changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Random characters and length|Random characters and length]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Generate new names consisting of random selection of characters and of random length.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Convert file content from ANSI to UTF-8|Convert file content from ANSI to UTF-8]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Convert the content of processed files from ANSI (default system code page) to UTF-8 encoding.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;br /&gt;
[[Category:Pascal Script]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Scripts&amp;diff=3290</id>
		<title>ReNamer:Scripts</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Scripts&amp;diff=3290"/>
		<updated>2019-05-20T09:37:14Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* 3rd party libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|ReNamer:Pascal Script}}&lt;br /&gt;
&lt;br /&gt;
This page contains a collection of scripts which can be used in [[ReNamer]]&#039;s [[ReNamer:Rules:PascalScript|PascalScript rule]].&lt;br /&gt;
&lt;br /&gt;
== Educational scripts ==&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Initialize|Initialize]]&lt;br /&gt;
| How to initialize the code.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Import DLL|Import DLL]]&lt;br /&gt;
| Demonstrates how to call functions of 3rd party DLL.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Date and Time|Date and Time]]&lt;br /&gt;
| How to use date and time of the file.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Move filename portion|Move filename portion]]&lt;br /&gt;
| How to move part of the filename to a new position.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Index filenames|Index filenames]]&lt;br /&gt;
| How to insert an incrementing number into the filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries ==&lt;br /&gt;
&lt;br /&gt;
Each of these scripts needs a third-party software (&amp;quot;library&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Download the software as directed, and place in a particular folder.&amp;lt;/br&amp;gt; Then copy the script into the PascalScript Rule and save it. &amp;lt;/br&amp;gt;Restart ReNamer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script&lt;br /&gt;
! Description&lt;br /&gt;
! Forum Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:TrID|TrID]]&lt;br /&gt;
| Detecting file extension.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=550&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Xpdf|Xpdf]]&lt;br /&gt;
| Extract PDF tags.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=349&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Exiv2|Exiv2]]&lt;br /&gt;
| Extract EXIF/IPTC/XMP tags from any images.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=407&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?id=109&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:MediaInfo|MediaInfo]]&lt;br /&gt;
| Extract meta information from audio and video files.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User scripts  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script &lt;br /&gt;
! Description &lt;br /&gt;
! Forum Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Separate words|Separate words]]&lt;br /&gt;
| Insert a space in front of each capitalized letter.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=2529#p2529&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:AVI video codec|AVI video codec]]&lt;br /&gt;
| Extract name of video codec used encoding AVI file.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=3484#p3484&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:RegEx Case Convertion|RegEx Case Convertion]]&lt;br /&gt;
| Convert case of capturing groups of your regular expression.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=3454#p3454&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?pid=3459#p3459&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Using MasterFile|Using MasterFile]]&lt;br /&gt;
| Renaming folder basing on the MetaTag of the first file in the folder. In this particular case: adding the ID3_Year metatag from the mp3 file to it&#039;s parent folder name.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=1626#p1626&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Hours span|Hours span]]&lt;br /&gt;
| Add hours to a date embedded in the filename in format &amp;quot;yyyy-mm-dd hh-nn-ss.JPG&amp;quot;.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=696&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Roman numerals serialization|Roman numerals serialization]]&lt;br /&gt;
| Serialization with Roman numerals.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=828&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?pid=3327#p3327&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:EAN-13|EAN-13 checksum]]&lt;br /&gt;
| Calculate the checksum digit for the [http://en.wikipedia.org/wiki/EAN-13 EAN-13 barcode].&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=930&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Serialize duplicates|Serialize duplicates]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Serialize duplicated filenames by append a counter to the filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Partial case change|Partial case change]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Change case of specific parts of the file name.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:URL decode|URL decode]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Decode a URL encoded filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Index files per folder|Index files per folder]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| This script adds a serialization index to the end of every file on per folder basis. The index is incremented only when the folder path changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Random characters and length|Random characters and length]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Generate new names consisting of random selection of characters and of random length.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Convert file content from ANSI to UTF-8|Convert file content from ANSI to UTF-8]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Convert the content of processed files from ANSI (default system code page) to UTF-8 encoding.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;br /&gt;
[[Category:Pascal Script]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Scripts&amp;diff=3289</id>
		<title>ReNamer:Scripts</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Scripts&amp;diff=3289"/>
		<updated>2019-05-20T09:29:40Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* 3rd party libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|ReNamer:Pascal Script}}&lt;br /&gt;
&lt;br /&gt;
This page contains a collection of scripts which can be used in [[ReNamer]]&#039;s [[ReNamer:Rules:PascalScript|PascalScript rule]].&lt;br /&gt;
&lt;br /&gt;
== Educational scripts ==&lt;br /&gt;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Initialize|Initialize]]&lt;br /&gt;
| How to initialize the code.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Import DLL|Import DLL]]&lt;br /&gt;
| Demonstrates how to call functions of 3rd party DLL.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Date and Time|Date and Time]]&lt;br /&gt;
| How to use date and time of the file.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Move filename portion|Move filename portion]]&lt;br /&gt;
| How to move part of the filename to a new position.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Index filenames|Index filenames]]&lt;br /&gt;
| How to insert an incrementing number into the filename.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3rd party libraries ==&lt;br /&gt;
&lt;br /&gt;
Each of these scripts needs a third-party software. &amp;lt;/br&amp;gt;You have to download the software as directed, and place in a particular folder.&amp;lt;/br&amp;gt; Then copy the script into the PascalScript Rule and save it. &amp;lt;/br&amp;gt;Restart ReNamer. &amp;lt;/br&amp;gt;Now add a new rule with the new script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script&lt;br /&gt;
! Description&lt;br /&gt;
! Forum Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:TrID|TrID]]&lt;br /&gt;
| Detecting file extension.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=550&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Xpdf|Xpdf]]&lt;br /&gt;
| Extract PDF tags.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=349&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Exiv2|Exiv2]]&lt;br /&gt;
| Extract EXIF/IPTC/XMP tags from any images.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=407&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?id=109&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:MediaInfo|MediaInfo]]&lt;br /&gt;
| Extract meta information from audio and video files.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== User scripts  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Script &lt;br /&gt;
! Description &lt;br /&gt;
! Forum Link&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Separate words|Separate words]]&lt;br /&gt;
| Insert a space in front of each capitalized letter.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=2529#p2529&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:AVI video codec|AVI video codec]]&lt;br /&gt;
| Extract name of video codec used encoding AVI file.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=3484#p3484&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:RegEx Case Convertion|RegEx Case Convertion]]&lt;br /&gt;
| Convert case of capturing groups of your regular expression.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=3454#p3454&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?pid=3459#p3459&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Using MasterFile|Using MasterFile]]&lt;br /&gt;
| Renaming folder basing on the MetaTag of the first file in the folder. In this particular case: adding the ID3_Year metatag from the mp3 file to it&#039;s parent folder name.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?pid=1626#p1626&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Hours span|Hours span]]&lt;br /&gt;
| Add hours to a date embedded in the filename in format &amp;quot;yyyy-mm-dd hh-nn-ss.JPG&amp;quot;.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=696&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Roman numerals serialization|Roman numerals serialization]]&lt;br /&gt;
| Serialization with Roman numerals.&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=828&amp;lt;br/&amp;gt;http://www.den4b.com/forum/viewtopic.php?pid=3327#p3327&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:EAN-13|EAN-13 checksum]]&lt;br /&gt;
| Calculate the checksum digit for the [http://en.wikipedia.org/wiki/EAN-13 EAN-13 barcode].&lt;br /&gt;
| http://www.den4b.com/forum/viewtopic.php?id=930&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Serialize duplicates|Serialize duplicates]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Serialize duplicated filenames by append a counter to the filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Partial case change|Partial case change]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Change case of specific parts of the file name.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:URL decode|URL decode]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Decode a URL encoded filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Index files per folder|Index files per folder]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| This script adds a serialization index to the end of every file on per folder basis. The index is incremented only when the folder path changes.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Random characters and length|Random characters and length]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Generate new names consisting of random selection of characters and of random length.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Scripts:Convert file content from ANSI to UTF-8|Convert file content from ANSI to UTF-8]]&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| Convert the content of processed files from ANSI (default system code page) to UTF-8 encoding.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;br /&gt;
[[Category:Pascal Script]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:PascalScript&amp;diff=3288</id>
		<title>ReNamer:Rules:PascalScript</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:PascalScript&amp;diff=3288"/>
		<updated>2019-05-20T09:24:19Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Borrowing scripts from forum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:RegEx|next=ReNamer:Rules:UserInput}}&lt;br /&gt;
&lt;br /&gt;
[[Image:PascalScriptRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule uses [[ReNamer:Pascal Script|Pascal Script programming engine]] with syntax and conventions similar to Delphi/Pascal. ReNamer comes with some preloaded scripts. We will see how to use them, and how to add a new script. &lt;br /&gt;
&lt;br /&gt;
== Using a ready script ==&lt;br /&gt;
&lt;br /&gt;
# Click on the [[Image:ScriptsButton.png]] button (located just below the &#039;&#039;&#039;Configuration &#039;&#039;&#039;pane). &lt;br /&gt;
#: A list of scripts appears. &lt;br /&gt;
#: [[Image:PascalScriptsMenu.png]] &lt;br /&gt;
# All available scripts are listed &#039;&#039;above&#039;&#039; the line. Click on any script to load it into the &#039;&#039;&#039;Configuration &#039;&#039;&#039;pane. &lt;br /&gt;
# Edit the script if required &lt;br /&gt;
# Press [[Image:AddRuleButton.png]] button to add the script to the rule stack. &lt;br /&gt;
&lt;br /&gt;
Alternatively, you can &#039;&#039;drag and drop&#039;&#039; an existing file from your desktop of favourite explorer straight into the script window.&lt;br /&gt;
&lt;br /&gt;
Hold &amp;lt;tt&amp;gt;SHIFT&amp;lt;/tt&amp;gt; key when opening a new script to insert it into the current script at the cursor position, instead of completely replacing the current script. This can be useful when you store your commonly used functions in separate script files, and with this feature they can be easily merged into the current script.&lt;br /&gt;
&lt;br /&gt;
== Borrowing readymade scripts ==&lt;br /&gt;
&lt;br /&gt;
Even if you do not know how to write a script, you can easily use scripts written by others.&lt;br /&gt;
&lt;br /&gt;
There are two sources of such readymade scripts:&amp;lt;/br&amp;gt;&lt;br /&gt;
1. The [http://www.den4b.com/wiki/ReNamer:Scripts &#039;&#039;&#039;Scripts repository&#039;&#039;&#039;]&amp;lt;/br&amp;gt;&lt;br /&gt;
2. The [http://www.den4b.com/forum/ &#039;&#039;&#039;User Forum&#039;&#039;&#039;] &lt;br /&gt;
&lt;br /&gt;
Search for a suitable script. &lt;br /&gt;
&lt;br /&gt;
Some of these scripts have embedded comments about how to customize the script. If you cannot find a suitable script, you can request other users to write the script for you (or customize an existing script). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TIP:&#039;&#039;&#039; If you are looking for scripts only, try to use &#039;&#039;&#039;begin&#039;&#039;&#039; or &#039;&#039;&#039;end&#039;&#039;&#039; words in your search phrase as these are the words that are present in every single script.&lt;br /&gt;
&lt;br /&gt;
Once you find such a script, follow these simple steps: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Step&lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| &#039;&#039;&#039;Copy the script&#039;&#039;&#039; &lt;br /&gt;
Copy the script from the forum (ensure that nothing is left out).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| &#039;&#039;&#039;Clear the ReNamer&#039;s Configuration pane&#039;&#039;&#039; &lt;br /&gt;
Open the &#039;&#039;&#039;Pascal Script&#039;&#039;&#039; Rule in ReNamer. Select the three lines you see in the &#039;&#039;&#039;Configuration&#039;&#039;&#039; pane, and press DEL or paste the script while these lines are selected. &lt;br /&gt;
*The three lines already provided in the window are meant to begin a script from scratch; but since you are pasting a ready-made script, they must be removed first, otherwise they will interfere with your script. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| &#039;&#039;&#039;Paste the script into ReNamer pane&#039;&#039;&#039; &lt;br /&gt;
Use the &#039;&#039;&#039;CTRL+V&#039;&#039;&#039; shortcut or right-click and select &#039;&#039;&#039;Paste&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| &#039;&#039;&#039;Compile the script&#039;&#039;&#039; &lt;br /&gt;
Press the [[Image:TryToCompileButton.png]] button. &lt;br /&gt;
&lt;br /&gt;
*In case some error comes up, the error message will identify the line number of the faulty statement. &lt;br /&gt;
*:You can try and troubleshoot the problematic statement in the script using the [[Image:GotoButton.png]] button. &lt;br /&gt;
*:ReNamer opens a window like this: &lt;br /&gt;
*:&amp;lt;center&amp;gt;[[Image:GotoLineDialog.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
*:Now enter the line number in the window and press &#039;&#039;&#039;OK&#039;&#039;&#039;. It takes you to the faulty statement.&lt;br /&gt;
*: Try to edit the statement and compile the script again.&lt;br /&gt;
*: (Note that if the script compiles successfully, the [[Image:GotoButton.png]] button is not required at all.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! 5&lt;br /&gt;
| &#039;&#039;&#039;Saving the script and giving it a name:&#039;&#039;&#039; &lt;br /&gt;
The &#039;&#039;&#039;save &#039;&#039;&#039;button is hidden under the &#039;&#039;&#039;scripts &#039;&#039;&#039;menu. So first click on the [[Image:ScriptsButton.png]] button. It pops up a window like this: &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:PascalScriptsMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
Note that all the existing scripts are listed here. (When you save the new script, it will also be added to this list.) &lt;br /&gt;
&lt;br /&gt;
Select the &#039;&#039;&#039;Save script... &#039;&#039;&#039;option (at the very bottom of the menu). Another window pops up. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:SaveScriptDialog.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
Enter a name that suggests the function of your script. Press &#039;&#039;&#039;OK&#039;&#039;&#039;. The new name is added to the list of scripts. Now use it as described [[#Using_a_ready_script|above]]. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Writing your own scripts ==&lt;br /&gt;
&lt;br /&gt;
To write your own scripts, you must have knowledge of Pascal script. Learning Pascal script is easy. Refer to the [[ReNamer:Pascal Script|Pascal Script section]].&lt;br /&gt;
&lt;br /&gt;
Here, we will assume that you already know how to write pascal scripts. &lt;br /&gt;
&lt;br /&gt;
The step-by-step procedure is as follows: &lt;br /&gt;
&lt;br /&gt;
# Click in the Configuration pane and enter the script directly. (You can also copy it from anywhere and paste it into the pane by pressing &#039;&#039;&#039;CTRL+V&#039;&#039;&#039;. Or right-click in the pane and select the &#039;&#039;&#039;Paste&#039;&#039;&#039; option from the context menu.) &lt;br /&gt;
# Compile the script by pressing the [[Image:TryToCompileButton.png]] button located below the Configuration pane. &lt;br /&gt;
#* If an error message comes up, troubleshoot the script. The fault message usually includes the line number of the problematic statement in the script. Press the [[Image:GotoButton.png]] button and enter that line number to locate the faulty statement quickly. Then correct the errors and press the [[Image:TryToCompileButton.png]] button again. Repeat this till a &#039;&#039;&#039;&#039;&#039;Compiled successfully!&#039;&#039;&#039;&#039;&#039; message pops up. &lt;br /&gt;
# Now you can add the script as a rule by pressing [[Image:AddRuleButton.png]] button or save it for later use.&lt;br /&gt;
# To save the script press the [[Image:ScriptsButton.png]] button. A list pops up: &lt;br /&gt;
#: &amp;lt;center&amp;gt;[[Image:PascalScriptsMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
# Click on the &#039;&#039;&#039;Save Script...&#039;&#039;&#039;(the last option in the list). Now this script is added to the list (it appears above the line in the list). &lt;br /&gt;
#* Now you can use that script as described [[#Using a ready script|above]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Rearrange&amp;diff=3275</id>
		<title>ReNamer:Rules:Rearrange</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Rearrange&amp;diff=3275"/>
		<updated>2018-10-13T03:40:15Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Rearrange rule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Replace|next=ReNamer:Rules:Extension}}&lt;br /&gt;
&lt;br /&gt;
== Rearrange rule  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:RearrangeRule.png|center]] &lt;br /&gt;
&lt;br /&gt;
This rule allows you to chop up the existing file name and reuse any/all of the parts in any order to compose a new name. &lt;br /&gt;
&lt;br /&gt;
*You can also add your own text, or use meta tags while composing the new name. &lt;br /&gt;
*You can also use the whole original name, and insert literal text (or meta tags) around it.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Split using &lt;br /&gt;
| &lt;br /&gt;
Specifies how to split the existing name into parts. &lt;br /&gt;
&lt;br /&gt;
*You can use only one of the three options at a time (you cannot combine the chopping methods)&lt;br /&gt;
&lt;br /&gt;
For detailed explanation of split methods please look below at the [[#Split options explained|split options explained]] section.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| &lt;br /&gt;
If selected, the numbering starts from right. &lt;br /&gt;
&lt;br /&gt;
*The characters of the original names are counted from right (the count begins with 1) &lt;br /&gt;
*The chopped parts will also be numbered from right ($1, $2, etc.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:PlusButton.png]] &lt;br /&gt;
| Add a separator for additional delimiters. The separator is a &amp;quot;{{Pipe}}&amp;quot; (vertical pipe) character, which can also be entered manually.&lt;br /&gt;
|-&lt;br /&gt;
| New pattern &lt;br /&gt;
| &lt;br /&gt;
How to compose the new name from the parts created from the original name (see above). &lt;br /&gt;
&lt;br /&gt;
*You can add meta tags and literal text wherever you want. &lt;br /&gt;
*$0 refers to the whole original name. This allows you to quickly compose a new name by inserting a string at the beginning and/or end.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:ReNamer Insert Meta Tag Button.png]] &lt;br /&gt;
| Click the button to see a list of [[ReNamer:Meta Tags|meta-tags]]. Select any meta tag to insert it in the new name template.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Split options explained ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| Delimiters &lt;br /&gt;
| &lt;br /&gt;
Chop the name where the delimiter occurs. &lt;br /&gt;
&lt;br /&gt;
*The delimiter can be a single character or a string. &lt;br /&gt;
*The chopped parts do &amp;lt;u&amp;gt;&#039;&#039;not&#039;&#039;&amp;lt;/u&amp;gt; contain the delimiters (they are omitted totally) &lt;br /&gt;
*Spaces, numbers and symbols are treated like normal characters. &lt;br /&gt;
*Several delimiters can be used at a time. Use the {{pipe}} character to separate them. &lt;br /&gt;
*The chopped parts are numbered from left, as $1, $2, $3, etc.&lt;br /&gt;
&lt;br /&gt;
:The same parts can be referred from the end as $-1, $-2, $-3, etc.&lt;br /&gt;
&lt;br /&gt;
*If the delimiter occurs at the very beginning of the name, the resultant $1 contains nothing (because there is nothing on the left side of the delimiter).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The number of parts into which the filename is broken down depends solely on the number of delimiters in the filename. If you reference fewer parts in the output pattern that the number of available parts - not referenced parts will be lost! For example, take filename &amp;quot;Artist - Title&amp;quot; and to swap them around one would use &amp;quot; - &amp;quot; as a delimiter and &amp;quot;$2 - $1&amp;quot; as a new pattern which will result in &amp;quot;Title - Artist&amp;quot;, but if some filename appears with more dashes like &amp;quot;Artist - Title - Album&amp;quot; the result will also be &amp;quot;Title - Artist&amp;quot; and last part will be lost. To make sure that no parts are lost use &#039;&#039;&#039;Exact pattern of delimiters&#039;&#039;&#039; option instead. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Positions &lt;br /&gt;
| &lt;br /&gt;
Chop the name at the indicated position (the position count begins with 1). &lt;br /&gt;
&lt;br /&gt;
*If you enter position &#039;&#039;&#039;n&#039;&#039;&#039;, ReNamer will chop the &#039;&#039;&#039;n&#039;&#039;&#039;-th character and all characters beyond that in a separate piece. &lt;br /&gt;
*Spaces, numbers and symbols are treated like normal characters. &lt;br /&gt;
*No part of the original name is omitted during chopping. &lt;br /&gt;
*You can enter multiple positions. Separate them with the &#039;&#039;&#039;*&amp;amp;#124;*&#039;&#039;&#039; sequence. &lt;br /&gt;
*The chopped parts are numbered from left, as $1, $2, $3, etc.&lt;br /&gt;
&lt;br /&gt;
:The same parts can be referred from the end as $-1, $-2, $-3, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Exact pattern of delimiters &lt;br /&gt;
| &lt;br /&gt;
Chop the name using the exact pattern (sequence) of the delimiters. &lt;br /&gt;
&lt;br /&gt;
With this option you basically define how many parts you want the filename to be split into and the order in which the delimiters must occur. If you specify 1 delimiter then you end up with exactly 2 parts, if you specify 2 delimiters you&#039;ll get 3 parts, and so on. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
This rule is so versatile that it can be used in a huge number of ways.&lt;br /&gt;
Therefore its examples have been moved to a separate article [[ReNamer:Rules:Rearrange Examples|Rearrange Examples]].&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Case&amp;diff=2539</id>
		<title>ReNamer:Rules:Case</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Case&amp;diff=2539"/>
		<updated>2013-11-08T06:13:56Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Case Rule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Strip|next=ReNamer:Rules:Serialize}}&lt;br /&gt;
&lt;br /&gt;
== Case Rule  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:CaseRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule changes the case of the filename. Options are: capitalize, to lower case, to upper case, invert case, and put only first letter capital (as in a sentence). &lt;br /&gt;
&lt;br /&gt;
There is also an option to force case for specific text-fragments, such as CD, DVD, RF, etc. These fragments would not look natural in any other case (e.g. cd, dvd, rf), so the rule allows you to prevent changing the case of such terms in one stroke. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Case change &lt;br /&gt;
| Several options are offered. &lt;br /&gt;
*The case of each option itself illustrates how that option works. For example, &#039;&#039;&#039;Capitalize Every Word&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Capitalize Every Word&#039;&#039;&#039; will first make all letters lowercase and then convert the first letter of each word into UPPERCASE.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Capitalize AND Preserve&#039;&#039;&#039; will convert the first letter of each word into UPPERCASE; but will not affect the rest of the letters.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;all lower case&#039;&#039;&#039; will convert all letters to lowercase.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;ALL UPPERCASE&#039;&#039;&#039; will convert all letters to UPPERCASE. &lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;iNVERT cASE&#039;&#039;&#039; will change all capital letters to lowercase, and all lowercased letters to UPPERCASE.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;First letter capital&#039;&#039;&#039; will change only the first letter to UPPERCASE, and rest of the letters to lowercase. (Compare this with the &#039;&#039;&#039;Capitalize AND Preserve&#039;&#039;&#039; option above.)&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;(none of the above)&#039;&#039;&#039; option is provided to disable the case conversions listed above it, so you could independently use the options listed on the right side of the window. This allows you to convert the case of extension, or case-convert specific text fragments (see below).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Force case for fragments &lt;br /&gt;
| &lt;br /&gt;
This option forces the case of specified text-fragments (strings) in the file name. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: This check box is coupled with the box below it. (Enter the fragments in the box and then activate the option by selecting the check box.) &lt;br /&gt;
&lt;br /&gt;
*You can set any case for the strings (ALLCAPS, Only first letter capitalized, lowercase, MixedCase, etc.)&lt;br /&gt;
&lt;br /&gt;
*You can specify &#039;&#039;multiple&#039;&#039; strings at a time, each with its own case format. To separate the strings from each other, put a comma between them.&amp;lt;br&amp;gt;(Note: In versions prior to v5.50, a space was used instead of a comma.)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The case for these strings will be set exactly as entered in the box, regardless of the options selected in &#039;&#039;&#039;Case change&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
Here are some typical examples of such strings: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Case&lt;br /&gt;
! Examples&lt;br /&gt;
|-&lt;br /&gt;
| ALLCAPS&lt;br /&gt;
| CD, DVD, TV, HTML, XML, C++, USA, GIMP&lt;br /&gt;
|-&lt;br /&gt;
| Only the First letter capitalized&lt;br /&gt;
| Java, India, English, Sunday, Easter, February&lt;br /&gt;
|-&lt;br /&gt;
| Mixed case&lt;br /&gt;
| OpenSUSE, OpenOffice, ReNamer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| Extension always upper case &lt;br /&gt;
| Forces the extension to uppercase. &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting overrides any other setting that can alter the extension. For example, consider a case where the &#039;&#039;&#039;all lowercase&#039;&#039;&#039; option is selected and the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is deselected. Logically, the extension should be converted into lowercase too. But if the &#039;&#039;&#039;Extension always upper case &#039;&#039;&#039;option is selected, the case of the extension will be converted to uppercase. This setting will override even the fragments case-conversion.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Extension always lower case &lt;br /&gt;
| Forces the extension to lowercase. &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting overrides any other setting that can alter the extension. For example, consider a case where the &#039;&#039;&#039;ALL UPPER CASE&#039;&#039;&#039; option is selected and the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is deselected. Logically, the extension should be converted into ALLCAPS. But if the &#039;&#039;&#039;Extension always lower case&#039;&#039;&#039; option is selected, the case of the extension will be converted to lowercase. This setting will override even the fragments case-conversion. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2421</id>
		<title>ReNamer:Pascal Script:Functions</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2421"/>
		<updated>2013-02-27T05:35:46Z</updated>

		<summary type="html">&lt;p&gt;Narayan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Pascal Script|prev=ReNamer:Pascal Script:Types}}&lt;br /&gt;
&lt;br /&gt;
ReNamer has many functions to manipulate the entities related to file names and do some more complex tasks for individual files. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc. This functionality is available for use via the [[ReNamer:Rules:PascalScript|PascalScript rule]].&lt;br /&gt;
&lt;br /&gt;
The difference between a &amp;quot;function&amp;quot; and a &amp;quot;procedure&amp;quot; is that while a function executes an algorithm and returns a value, a procedure just executes an algorithm without returning anything.&lt;br /&gt;
&lt;br /&gt;
A common prefix &#039;&#039;&#039;Wide&#039;&#039;&#039; in the function name indicates that the function deals with [[Unicode]] strings (WideString). ReNamer has similar functions without &#039;&#039;&#039;Wide&#039;&#039;&#039; prefix, for processing &#039;&#039;&#039;ANSI&#039;&#039;&#039; strings. For example, &#039;&#039;&#039;ShowMessage&#039;&#039;&#039; and &#039;&#039;&#039;WideShowMessage&#039;&#039;&#039; procedures.&lt;br /&gt;
&lt;br /&gt;
== Basic String Handling ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Routine&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Insert&#039;&#039;&#039;(Source: String; var S: String; Index: Integer); &lt;br /&gt;
| Inserts the string &#039;&#039;&#039;S&#039;&#039;&#039; into string &#039;&#039;&#039;Source&#039;&#039;&#039; at position &#039;&#039;&#039;Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Delete&#039;&#039;&#039;(var S: String; Index, Count: Integer); &lt;br /&gt;
| Deletes &#039;&#039;&#039;Count&#039;&#039;&#039; characters from the string &#039;&#039;&#039;S&#039;&#039;&#039;, starting from position &#039;&#039;&#039;Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Copy&#039;&#039;&#039;(S: String; Index, Count: Integer): String; &lt;br /&gt;
| Copies &#039;&#039;&#039;Count&#039;&#039;&#039; characters from string &#039;&#039;&#039;S&#039;&#039;&#039;, starting at position &#039;&#039;&#039;Index&#039;&#039;&#039;, and returns them as a new string.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Pos&#039;&#039;&#039;(Substr: String; S: String): Integer; &lt;br /&gt;
| Returns the position of a string &#039;&#039;&#039;Substr&#039;&#039;&#039; in another string &#039;&#039;&#039;S&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Indexes of characters in strings are 1 based, so first character in string S would be S[1].&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Length Management ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Routine&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;SetLength&#039;&#039;&#039;(var S: Array; NewLength: Integer); &lt;br /&gt;
| Sets the length of array variable &#039;&#039;&#039;S&#039;&#039;&#039; to &#039;&#039;&#039;NewLength&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;SetLength&#039;&#039;&#039;(var S: String; NewLength: Integer); &lt;br /&gt;
| Sets the length of string variable &#039;&#039;&#039;S&#039;&#039;&#039; to &#039;&#039;&#039;NewLength&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;SetLength&#039;&#039;&#039;(var S: WideString; NewLength: Integer); &lt;br /&gt;
| Sets the length of widestring &#039;&#039;&#039;S&#039;&#039;&#039; to &#039;&#039;&#039;NewLength&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Length&#039;&#039;&#039;(const S: Array): Integer; &lt;br /&gt;
| Returns the length of array &#039;&#039;&#039;S &#039;&#039;&#039; (number of elements).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Length&#039;&#039;&#039;(const S: String): Integer; &lt;br /&gt;
| Returns the length of string &#039;&#039;&#039;S&#039;&#039;&#039; (number of characters).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Length&#039;&#039;&#039;(const S: WideString): Integer;&lt;br /&gt;
| Returns the length of WideString &#039;&#039;&#039;S&#039;&#039;&#039; (number of characters).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Unicode String Handling ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Routine&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideInsert&#039;&#039;&#039;(const Substr: WideString; var Dest: WideString; Index: Integer); &lt;br /&gt;
| Inserts &#039;&#039;&#039;Substr&#039;&#039;&#039; in &#039;&#039;&#039;Dest&#039;&#039;&#039; at position &#039;&#039;&#039;Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideDelete&#039;&#039;&#039;(var S: WideString; Index, Count: Integer); &lt;br /&gt;
| Deletes &#039;&#039;&#039;Count&#039;&#039;&#039; characters from &#039;&#039;&#039;S&#039;&#039;&#039;, starting from the &#039;&#039;&#039;Index&#039;&#039;&#039; position.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideSetLength&#039;&#039;&#039;(var S: WideString; NewLength: Integer); &lt;br /&gt;
| Change the length of string &#039;&#039;&#039;S&#039;&#039;&#039; to a new length specified by &#039;&#039;&#039;NewLength&#039;&#039;&#039;. If new length is smaller than original, the string is truncated. If new length is greater than original, the string will be expanded but additional characters will not be initialized and can be anything.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideLength&#039;&#039;&#039;(const S: WideString): Integer; &lt;br /&gt;
| Returns the length of WideString &#039;&#039;&#039;S&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCopy&#039;&#039;&#039;(const S: WideString; Index, Count: Integer): WideString; &lt;br /&gt;
| Returns &#039;&#039;&#039;Count&#039;&#039;&#039; characters from WideString &#039;&#039;&#039;S&#039;&#039;&#039;, starting at position &#039;&#039;&#039;Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WidePos&#039;&#039;&#039;(const SubStr, S: WideString): Integer; &lt;br /&gt;
| Find and occurrence of &#039;&#039;&#039;SubStr&#039;&#039;&#039; in &#039;&#039;&#039;S&#039;&#039;&#039;. Returns the position of first occurrence, or &#039;&#039;&#039;0&#039;&#039;&#039; if nothing was found.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WidePosEx&#039;&#039;&#039;(const SubStr, S: WideString; Offset: Cardinal): Integer; &lt;br /&gt;
| Find and occurrence of &#039;&#039;&#039;SubStr&#039;&#039;&#039; in &#039;&#039;&#039;S&#039;&#039;&#039; but start searching from position specified by &#039;&#039;&#039;Offset&#039;&#039;&#039;. Returns the position of first occurrence, or &#039;&#039;&#039;0&#039;&#039;&#039; if nothing was found.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideUpperCase&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| Returns the ALLCAPS version of the WideString &#039;&#039;&#039;S&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideLowerCase&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| Returns the lowercase version of the WideString &#039;&#039;&#039;S&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCompareStr&#039;&#039;&#039;(const S1, S2: WideString): Integer; &lt;br /&gt;
| Compares two WideStrings &#039;&#039;&#039;S1&#039;&#039;&#039; and &#039;&#039;&#039;S2&#039;&#039;&#039;, case-sensitive, and returns an integer based on the result. The return value is less than 0 if S1 is less than S2, 0 if S1 equals S2, or greater than 0 if S1 is greater than S2.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCompareText&#039;&#039;&#039;(const S1, S2: WideString): Integer; &lt;br /&gt;
| Compares two WideStrings &#039;&#039;&#039;S1&#039;&#039;&#039; and &#039;&#039;&#039;S2&#039;&#039;&#039;, case-insensitive, and returns an integer based on the result. The return value is less than 0 if S1 is less than S2, 0 if S1 equals S2, or greater than 0 if S1 is greater than S2.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSameText&#039;&#039;&#039;(const S1, S2: WideString): Boolean; &lt;br /&gt;
| Compares two WideStrings &#039;&#039;&#039;S1&#039;&#039;&#039; and &#039;&#039;&#039;S2&#039;&#039;&#039;, case-insensitive. Returns TRUE if both are identical, otherwise returns FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideTextPos&#039;&#039;&#039;(const SubStr, S: WideString): Integer; &lt;br /&gt;
| Behaves like &#039;&#039;&#039;WidePos&#039;&#039;&#039; function, except text if processed in case-insensitive manner.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideTrim&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| Removes leading and trailing spaces and control characters from the given string &#039;&#039;&#039;S&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideReplaceStr&#039;&#039;&#039;(const S, OldPattern, NewPattern: WideString): WideString; &lt;br /&gt;
| Returns the result of replacing on a string S, a string OldPattern (Case Sensitive), with a NewPattern.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideReplaceText&#039;&#039;&#039;(const S, OldPattern, NewPattern: WideString): WideString; &lt;br /&gt;
| Returns the result of replacing on a string S, a text OldPattern (Case Non-Sensitive), with a NewPattern.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSplitString&#039;&#039;&#039;(const Input, Delimiter: WideString): TStringsArray; &lt;br /&gt;
| &lt;br /&gt;
Splits the &#039;&#039;&#039;Input&#039;&#039;&#039; wherever &#039;&#039;&#039;Delimiter&#039;&#039;&#039; occurs and returns an array that contains the split parts. &lt;br /&gt;
&lt;br /&gt;
*The &#039;&#039;&#039;Delimiter&#039;&#039;&#039; itself can be a multi-character WideString. &amp;lt;br&amp;gt;(Unlike the usual comma, hyphen or space that are used for this purpose) &lt;br /&gt;
*The split parts (returned as elements of the array) do not contain the &#039;&#039;&#039;Delimiter&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| function  &#039;&#039;&#039;WideJoinStrings&#039;&#039;&#039;(const Strings: TStringsArray; const Delimiter: WideString): WideString;&lt;br /&gt;
| Joins all individual items from &#039;&#039;&#039;Strings&#039;&#039;&#039; into a single WideString, with &#039;&#039;&#039;Delimiter&#039;&#039;&#039; inserted between the joined items.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCaseCapitalize&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
Returns the &#039;&#039;Sentence case&#039;&#039; version of the WideString &#039;&#039;&#039;S&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Only the first alphabetic character is capitalized. All other alphabetic characters are converted to lowercase.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*If &#039;&#039;&#039;S&#039;&#039;&#039; begins with numeric characters, the first alphabetic character that follows will be capitalized.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCaseInvert&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| Inverts the case of all characters in the WideString &#039;&#039;&#039;S&#039;&#039;&#039; and returns the WideString.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Meta Tags Extraction  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;CalculateMetaTag&#039;&#039;&#039;(const FilePath: WideString; const MetaTagName String): String; &lt;br /&gt;
| Extracts and returns the value of a metatag specified by &#039;&#039;&#039;MetaTagName&#039;&#039;&#039; from the file specified by the complete absolute path &#039;&#039;&#039;FilePath&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example, to extract &#039;&#039;&#039;EXIF_Date&#039;&#039;&#039; tag from an image and set it to the filename, one can use something like this:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  FileName := CalculateMetaTag(FilePath, &#039;EXIF_Date&#039;);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full list of meta tags can be found in [[ReNamer:Meta Tags|Meta Tags]] article.&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Regular Expressions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;ReplaceRegEx&#039;&#039;&#039;(const Input, Find, Replace: WideString;const CaseSensitive, UseSubstitution: Boolean): WideString; &lt;br /&gt;
| Find-and-replace function using RegEx. Works like [[ReNamer:Rules:RegEx|RegEx rule]].&lt;br /&gt;
&lt;br /&gt;
The parameters for this and next RegEx functions are:&lt;br /&gt;
* &#039;&#039;&#039;Input&#039;&#039;&#039; - The WideString that is input to the function. &lt;br /&gt;
* &#039;&#039;&#039;Find&#039;&#039;&#039; - RegEx pattern to be found (same as &#039;&#039;&#039;Expression&#039;&#039;&#039; field in the [[ReNamer:Rules:RegEx|RegEx rule]]).&lt;br /&gt;
* &#039;&#039;&#039;Replace&#039;&#039;&#039; - Replacement string (same as the &#039;&#039;&#039;Replace&#039;&#039;&#039; field in the [[ReNamer:Rules:RegEx|RegEx rule]]).&lt;br /&gt;
* &#039;&#039;&#039;CaseSensitive&#039;&#039;&#039; - Specifies whether to process in a case-sensitive mode.&lt;br /&gt;
* &#039;&#039;&#039;UseSubstitution&#039;&#039;&#039; - Determines whether use [[ReNamer:Regular Expressions#Backreferences|backreferences]] in the result.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;MatchesRegEx&#039;&#039;&#039;(const Input, Find: WideString;const CaseSensitive: Boolean): TStringsArray; &lt;br /&gt;
| Returns a list of RegEx matches as an array. Function returns an array of full matches, which matched the entire expression, not the sub-patterns. For example:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;150&amp;quot; | Input  &lt;br /&gt;
! width=&amp;quot;100&amp;quot; | Find&lt;br /&gt;
! width=&amp;quot;100&amp;quot; | Results&lt;br /&gt;
|-&lt;br /&gt;
| Ax1_-_Bx2---Cx3 &lt;br /&gt;
| [A-Z]x\d&lt;br /&gt;
| &lt;br /&gt;
* Ax1&lt;br /&gt;
* Bx2&lt;br /&gt;
* Cx3&lt;br /&gt;
|-&lt;br /&gt;
| Ax1_-_Bx2---Cx3 &lt;br /&gt;
| ([A-Z])x(\d)&lt;br /&gt;
| &lt;br /&gt;
* Ax1&lt;br /&gt;
* Bx2&lt;br /&gt;
* Cx3&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;SubMatchesRegEx&#039;&#039;&#039;(const Input, Find: WideString;const CaseSensitive: Boolean): TStringsArray; &lt;br /&gt;
| This function is very similar to &#039;&#039;&#039;MatchesRegEx&#039;&#039;&#039;, but instead of returning full matches it will return an array of sub-expression matches for the &#039;&#039;&#039;first&#039;&#039;&#039; full match. For example:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;150&amp;quot; | Input&lt;br /&gt;
! width=&amp;quot;100&amp;quot; | Find&lt;br /&gt;
! width=&amp;quot;100&amp;quot; | Results&lt;br /&gt;
|-&lt;br /&gt;
| Ax1_-_Bx2---Cx3 &lt;br /&gt;
| [A-Z]x\d&lt;br /&gt;
| &#039;&#039;(empty)&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| Ax1_-_Bx2---Cx3 &lt;br /&gt;
| ([A-Z])x(\d)&lt;br /&gt;
| &lt;br /&gt;
* A&lt;br /&gt;
* 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In this way, it can easily be combined with &#039;&#039;&#039;MatchesRegEx&#039;&#039;&#039; function, to allow users to find all global matches, and then parse those matches through &#039;&#039;&#039;SubMatchesRegEx&#039;&#039;&#039; function to find individual sub-expression matches of each global match.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Unicode Character Handling ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharUpper&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is in UPPERCASE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharLower&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is in lowercase.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharDigit&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a digit (numeric character 0-9). &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharSpace&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a white-space character, such as: space, form-feed, newline, carriage-return, tab and vertical-tab (characters classified as C1_SPACE).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharPunct&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a punctuation mark (characters classified as C1_PUNCT).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharCntrl&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a control character (characters classified as C1_CNTRL).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharBlank&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a blank, such as: space and tab (characters classified as C1_BLANK).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharXDigit&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a hexadecimal digit (0-9 or A-F).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharAlpha&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a alphanumeric character (a-z or A-Z).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharAlphaNumeric&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a alphanumeric character or a numeric character (a-z, A-Z or 0-9).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCharUpper&#039;&#039;&#039;(const WC: WideChar): WideChar; &lt;br /&gt;
| Returns a UPPERCASE version of the input Unicode character. In case of non-alphabetic character, it returns the same character.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCharLower&#039;&#039;&#039;(const WC: WideChar): WideChar; &lt;br /&gt;
| Returns a lowercase version of the input Unicode character. In case of non-alphabetic character, it returns the same character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Character classifications, such as C1_UPPER, C1_LOWER, C1_DIGIT, C1_SPACE, C1_PUNCT, C1_CNTRL, C1_BLANK, C1_XDIGIT, C1_ALPHA - are part of Unicode definitions. More information regarding classification can be found on the internet. For example: [http://www.fileformat.info/info/unicode/ http://www.fileformat.info/info/unicode/].&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Unicode Conversion ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideToAnsi&#039;&#039;&#039;(const WS: WideString): String; &lt;br /&gt;
| Converts a [[Unicode]] string to its [[ANSI]] version.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;AnsiToWide&#039;&#039;&#039;(const S: String): WideString; &lt;br /&gt;
| Converts a [[ANSI]] string to its [[Unicode]] version.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Encode&#039;&#039;&#039;(const WS: WideString): String; &lt;br /&gt;
| Convert [[Unicode]] string to the [http://en.wikipedia.org/wiki/UTF-8 UTF-8] encoded string.&amp;lt;br/&amp;gt;Useful for storing Unicode strings in files, sometimes for compatibility reasons and sometimes to reduce the size of the file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
| Convert [http://en.wikipedia.org/wiki/UTF-8 UTF-8] encoded string to its full [[Unicode]] representation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Basic Conversion ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;BoolToStr&#039;&#039;&#039;(B: Boolean): String;&lt;br /&gt;
| Convert boolean variable into a string. Returns &#039;&#039;&#039;True&#039;&#039;&#039; or &#039;&#039;&#039;False&#039;&#039;&#039; string.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IntToStr&#039;&#039;&#039;(Value: Integer): String; &lt;br /&gt;
| Converts an integer to a string. The following assumptions are correct:&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
* IntToStr(123) = &#039;123&#039;&lt;br /&gt;
* IntToStr(0123) = &#039;123&#039;&lt;br /&gt;
* IntToStr(123) &amp;lt;&amp;gt; &#039;0123&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToInt&#039;&#039;&#039;(const S: String): Integer; &lt;br /&gt;
| Converts a string to an integer. The following equalities are correct:&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
* StrToInt(&#039;123&#039;) = 123&lt;br /&gt;
* StrToInt(&#039;123&#039;) = 0123&lt;br /&gt;
* StrToInt(&#039;0123&#039;) = 123&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; An error will occur if the parameter to this function cannot be converted to an integer!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToIntDef&#039;&#039;&#039;(const S: String; const Default: Integer): Integer; &lt;br /&gt;
| Behaves like &#039;&#039;&#039;StrToInt&#039;&#039;&#039; function, but instead of producing an error on incorrect input function allows the &#039;&#039;&#039;Default&#039;&#039;&#039; value to be specified, which will be returned if the input cannot be converted to an integer.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FloatToStr&#039;&#039;&#039;(Value: Extended): string;&lt;br /&gt;
| Converts supplied floating point value to its string representation, using default system format.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToFloat&#039;&#039;&#039;(const S: string): Extended;&lt;br /&gt;
| Converts supplied string to a floating point value.&amp;lt;br&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039; An error will occur if the parameter to this function cannot be converted to a floating point value!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToFloatDef&#039;&#039;&#039;(const S: string; const Default: Extended): Extended;&lt;br /&gt;
| Behaves like &#039;&#039;&#039;StrToFloat&#039;&#039;&#039; function, but instead of producing an error on incorrect input function allows the &#039;&#039;&#039;Default&#039;&#039;&#039; value to be specified, which will be returned if the input cannot be converted to a floating point value.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FormatFloat&#039;&#039;&#039;(const Format: string; Value: Extended): string;&lt;br /&gt;
| Converts supplied floating point value to its string representation, using user specific &#039;&#039;&#039;Format&#039;&#039;&#039;. Format string may contain following specifiers:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Specifier&lt;br /&gt;
! Represents&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0&#039;&#039;&#039;&amp;amp;nbsp;(zero)&lt;br /&gt;
| Digit placeholder. If the value being formatted has a digit in the position where the &amp;quot;0&amp;quot; appears in the format string, then that digit is copied to the output string. Otherwise, a &amp;quot;0&amp;quot; is stored in that position in the output string.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#&#039;&#039;&#039;&amp;amp;nbsp;(hash)&lt;br /&gt;
| Digit placeholder. If the value being formatted has a digit in the position where the &amp;quot;#&amp;quot; appears in the format string, then that digit is copied to the output string. Otherwise, nothing is stored in that position in the output string.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;.&#039;&#039;&#039;&amp;amp;nbsp;(dot)&lt;br /&gt;
| Decimal point. The first &amp;quot;.&amp;quot; character in the format string determines the location of the decimal separator in the formatted value, any additional &amp;quot;.&amp;quot; characters are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;,&#039;&#039;&#039;&amp;amp;nbsp;(comma)&lt;br /&gt;
| Thousand separator. If the format string contains one or more &amp;quot;,&amp;quot; characters, the output will have thousand separators inserted between each group of three digits to the left of the decimal point. The placement and number of &amp;quot;,&amp;quot; characters in the format string does not affect the output.&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DateToStr&#039;&#039;&#039;(D: TDateTime): String; &lt;br /&gt;
| Converts a date to a string, using system format for the short date, for example: &#039;&#039;&#039;dd/mm/yyyy&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToDate&#039;&#039;&#039;(const S: String): TDateTime; &lt;br /&gt;
| Converts a date string to a proper TDateTime value, using system format for the short date, for example: &#039;&#039;&#039;dd/mm/yyyy&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IntToHex&#039;&#039;&#039;(Value: Integer; Digits: Integer): String; &lt;br /&gt;
| Converts an integer to its hexadecimal representation. Here are samples:&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
* IntToHex(1234, 1) = &#039;4D2&#039;&lt;br /&gt;
* IntToHex(1234, 8) = &#039;000004D2&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;HexToInt&#039;&#039;&#039;(const HexNum: String): Integer; &lt;br /&gt;
| Converts a hexadecimal value to its decimal representation.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039; An error will occur if the parameter to this function cannot be converted to an integer!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;HexToIntDef&#039;&#039;&#039;(const HexNum: String; Default: Integer): Integer; &lt;br /&gt;
| Behaves like &#039;&#039;&#039;HexToInt&#039;&#039;&#039; function, but instead of producing an error on incorrect input function allows the &#039;&#039;&#039;Default&#039;&#039;&#039; value to be specified, which will be returned if the input cannot be converted to an integer.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Ord&#039;&#039;&#039;(X: Char): Byte; &lt;br /&gt;
| Return an ordinal value (byte representation) of a character.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Chr&#039;&#039;&#039;(X: Byte): Char; &lt;br /&gt;
| Return a character by its ordinal value (byte representation).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Date and Time ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Date&#039;&#039;&#039;: TDateTime; &lt;br /&gt;
| Returns the current system date.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Time&#039;&#039;&#039;: TDateTime; &lt;br /&gt;
| Returns the current system time.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Now&#039;&#039;&#039;: TDateTime; &lt;br /&gt;
| Returns the current system date and time.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;EncodeDate&#039;&#039;&#039;(Year, Month, Day: Word): TDateTime; &lt;br /&gt;
| Generates date value for the specified &#039;&#039;&#039;Year&#039;&#039;&#039;, &#039;&#039;&#039;Month&#039;&#039;&#039;, &#039;&#039;&#039;Day&#039;&#039;&#039;. Parameters must be within a valid date range: Year = 0..9999, Month = 1..12, Day = 1..31 (depending on month/year). An error will be raised if parameters are invalid.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;EncodeTime&#039;&#039;&#039;(Hour, Min, Sec, MSec: Word): TDateTime; &lt;br /&gt;
| Generates time value for the specified &#039;&#039;&#039;Hour&#039;&#039;&#039;, &#039;&#039;&#039;Min&#039;&#039;&#039;, &#039;&#039;&#039;Sec&#039;&#039;&#039;, &#039;&#039;&#039;MSec&#039;&#039;&#039;. Parameters must be within a valid time range: Hour = 0..23, Min = 0..59, Sec = 0..59, MSec = 0..999. An error will be raised if parameters are invalid.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;TryEncodeDate&#039;&#039;&#039;(Year, Month, Day: Word; var Date: TDateTime): Boolean; &lt;br /&gt;
| Behaves exactly like &#039;&#039;&#039;EncodeDate&#039;&#039;&#039; function, except this function returns the TRUE or FALSE depending on the success of the operation. If operation was successful, function will return TRUE and the generated date value will be written in the &#039;&#039;&#039;Date&#039;&#039;&#039; variable.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;TryEncodeTime&#039;&#039;&#039;(Hour, Min, Sec, MSec: Word; var Time: TDateTime): Boolean; &lt;br /&gt;
| Behaves exactly like &#039;&#039;&#039;EncodeTime&#039;&#039;&#039; function, except this function returns the TRUE or FALSE depending on the success of the operation. If operation was successful, function will return TRUE and the generated time value will be written in the &#039;&#039;&#039;Time&#039;&#039;&#039; variable.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;DecodeDate&#039;&#039;&#039;(const DateTime: TDateTime; var Year, Month, Day: Word); &lt;br /&gt;
| Extracts &#039;&#039;&#039;Year&#039;&#039;&#039;, &#039;&#039;&#039;Month&#039;&#039;&#039; and &#039;&#039;&#039;Day&#039;&#039;&#039; components from a given &#039;&#039;&#039;DateTime&#039;&#039;&#039; value.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;DecodeTime&#039;&#039;&#039;(const DateTime: TDateTime; var Hour, Min, Sec, MSec: Word); &lt;br /&gt;
| Extracts &#039;&#039;&#039;Hour&#039;&#039;&#039;, &#039;&#039;&#039;Min&#039;&#039;&#039;, &#039;&#039;&#039;Sec&#039;&#039;&#039; and &#039;&#039;&#039;MSec&#039;&#039;&#039; components from a given &#039;&#039;&#039;DateTime&#039;&#039;&#039; value.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DayOfWeek&#039;&#039;&#039;(const DateTime: TDateTime): Word; &lt;br /&gt;
| Returns the day of the week (as an index) for the specified &#039;&#039;&#039;DateTime&#039;&#039;&#039; value. The indexes are: 1 = Sunday, 2 = Monday, 3 = Tuesday, 4 = Wednesday, 5 = Thursday, 6 = Friday, 7 = Saturday.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DateTimeToUnix&#039;&#039;&#039;(D: TDateTime): Int64;&lt;br /&gt;
| Converts &#039;&#039;&#039;D&#039;&#039;&#039; value of type &#039;&#039;&#039;TDateTime&#039;&#039;&#039; to a Unix timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UnixToDateTime&#039;&#039;&#039;(U: Int64): TDateTime; &lt;br /&gt;
| Converts a Unix timestamp to a value of &#039;&#039;&#039;TDateTime&#039;&#039;&#039; type.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FormatDateTime&#039;&#039;&#039;(const Fmt: String; D: TDateTime): String; &lt;br /&gt;
| This function provides rich formatting of a &#039;&#039;&#039;DateTime&#039;&#039;&#039; value into a string. [[ReNamer:Date and Time format|Date and time format]] is defined by the &#039;&#039;&#039;Fmt&#039;&#039;&#039; string. &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncYear&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfYears: Integer): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of years (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime; ANumberOfMonths: Integer): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of months (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of weeks (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfDays: Integer): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of days (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfHours: Int64): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of hours (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfMinutes: Int64): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of minutes (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfSeconds: Int64): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of seconds (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfMilliSeconds: Int64): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of milliseconds (plus or minus).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== File Management ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideFileSize&#039;&#039;&#039;(const FileName: WideString): Int64; &lt;br /&gt;
| Returns the size of the file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideFileExists&#039;&#039;&#039;(const FileName: WideString): Boolean; &lt;br /&gt;
| Check whether specified file exists. Returns TRUE if file exists, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideDirectoryExists&#039;&#039;&#039;(const Directory: WideString): Boolean; &lt;br /&gt;
| Check whether specified directory exists. Returns TRUE if directory exists, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideForceDirectories&#039;&#039;&#039;(Dir: WideString): Boolean; &lt;br /&gt;
| Makes sure that that all directories in the path exist. If they don&#039;t, function will try to create them, recursively. Returns TRUE if all folders exist or have been successfully created.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCreateDir&#039;&#039;&#039;(const Dir: WideString): Boolean; &lt;br /&gt;
| Create specified directory (non-recursive). Returns TRUE on success, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideDeleteFile&#039;&#039;&#039;(const FileName: WideString): Boolean; &lt;br /&gt;
| Delete physical file from the disk. Returns TRUE on success, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideRenameFile&#039;&#039;&#039;(const OldName, NewName: WideString): Boolean; &lt;br /&gt;
| Rename file from &#039;&#039;&#039;OldName&#039;&#039;&#039; to &#039;&#039;&#039;NewName&#039;&#039;&#039;. Returns TRUE on success, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCopyFile&#039;&#039;&#039;(FromFile, ToFile: WideString; FailIfExists: Boolean): Boolean;&lt;br /&gt;
| Rename file from &#039;&#039;&#039;FromFile&#039;&#039;&#039; to &#039;&#039;&#039;ToFile&#039;&#039;&#039;. If &#039;&#039;&#039;FailIfExists&#039;&#039;&#039; flag is TRUE, file will not be copied when destination file already exists, otherwise, destination file will be overwritten. Returns TRUE on success, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideFileSearch&#039;&#039;&#039;(const Name, DirList: WideString): WideString; &lt;br /&gt;
| Search through the directories passed in &#039;&#039;&#039;DirList&#039;&#039;&#039; for a file named &#039;&#039;&#039;Name&#039;&#039;&#039;. DirList is a list of path names delimited by semicolons. If file matching Name is located, function returns a string specifying a path name for that file. If no matching file exists, function returns an empty string.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideScanDirForFiles&#039;&#039;&#039;(Dir: WideString; var Files: TStringsArray; const Recursive, IncludeHidden, IncludeSystem: Boolean; const Mask: WideString); &lt;br /&gt;
| You can get a list of the files inside a folder.&lt;br /&gt;
*&#039;&#039;&#039;Dir&#039;&#039;&#039;: The folder you want to scan.&lt;br /&gt;
*&#039;&#039;&#039;Files&#039;&#039;&#039;: Where the list of files is going to be saved.&lt;br /&gt;
*&#039;&#039;&#039;Recursive&#039;&#039;&#039;: Do you want to scan the subfolders?&lt;br /&gt;
*&#039;&#039;&#039;IncludeHidden&#039;&#039;&#039;: Do you want to list the hidden files?&lt;br /&gt;
*&#039;&#039;&#039;IncludeSystem&#039;&#039;&#039;: Do you want to list the system files?&lt;br /&gt;
*&#039;&#039;&#039;Mask&#039;&#039;&#039;: You can list everything (&#039;*&#039;), or only the files that contain some string (example: &#039;*.txt&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideScanDirForFolders&#039;&#039;&#039;(Dir: WideString; var Folders: TStringsArray; const Recursive, IncludeHidden, IncludeSystem: Boolean); &lt;br /&gt;
| You can get a list of the folders inside other folder.&lt;br /&gt;
*&#039;&#039;&#039;Dir&#039;&#039;&#039;: The folder you want to scan.&lt;br /&gt;
*&#039;&#039;&#039;Folders&#039;&#039;&#039;: Where the list of folders is going to be saved.&lt;br /&gt;
*&#039;&#039;&#039;Recursive&#039;&#039;&#039;: Do you want to scan the subfolders?&lt;br /&gt;
*&#039;&#039;&#039;IncludeHidden&#039;&#039;&#039;: Do you want to list the hidden folders?&lt;br /&gt;
*&#039;&#039;&#039;IncludeSystem&#039;&#039;&#039;: Do you want to list the system folders?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== File Name Utilities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFilePath&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the drive and directory portion from &amp;quot;FileName&amp;quot;, including the trailing path delimiter, e.g. &amp;quot;C:\Folder\&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileDir&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the drive and directory portion from &amp;quot;FileName&amp;quot;, excluding the trailing path delimiter, e.g. &amp;quot;C:\Folder&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileDrive&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the drive letter, e.g. &amp;quot;C:&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the filename with extension, e.g. &amp;quot;FileName.txt&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractBaseName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the base name of the file, i.e. file name without extension and path components.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Input&lt;br /&gt;
! Output&lt;br /&gt;
|-&lt;br /&gt;
| Document.txt&lt;br /&gt;
| Document&lt;br /&gt;
|-&lt;br /&gt;
| C:\Folder\Document.txt&lt;br /&gt;
| Document&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileExt&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the file&#039;s extension with the dot, e.g. &amp;quot;.txt&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideChangeFileExt&#039;&#039;&#039;(const FileName, Extension: WideString): WideString; &lt;br /&gt;
| Replaces the original extension, and returns the new filename with extension, e.g. &amp;quot;FineName.txt&amp;quot; -&amp;amp;gt; &amp;quot;FineName.pdf&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideStripExtension&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Strips off the extension from the filename, maintaining the path component unaffected.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Input&lt;br /&gt;
! Output&lt;br /&gt;
|-&lt;br /&gt;
| Document.txt&lt;br /&gt;
| Document&lt;br /&gt;
|-&lt;br /&gt;
| C:\Folder\Document.txt&lt;br /&gt;
| C:\Folder\Document&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExpandFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Converts the relative file name into a fully qualified path. This function does not verify that the resulting path refers to an existing file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString; &lt;br /&gt;
| Creates a relative path to go from &#039;&#039;&#039;BaseName&#039;&#039;&#039; to &#039;&#039;&#039;DestName&#039;&#039;&#039;. For example:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| &#039;&#039;&#039;BaseName:&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;C:\Folder\FileName.txt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DestName:&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;C:\Documents\Article.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Result:&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;..\Documents\Article.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractShortPathName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| It converts a path into it&#039;s representation in DOS format.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideIncludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| With this function you can ensure that a path for a folder &#039;&#039;&#039;contains&#039;&#039;&#039; the path delimiter (&amp;quot;\&amp;quot;) at the end of the path.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExcludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| With this function you can ensure that a path for a file does &#039;&#039;&#039;not contain&#039;&#039;&#039; the path delimiter (&amp;quot;\&amp;quot;) at the end of the path.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSameFileName&#039;&#039;&#039;(const S1, S2: WideString): Boolean; &lt;br /&gt;
| Compares the filenames &#039;&#039;&#039;S1&#039;&#039;&#039; and &#039;&#039;&#039;S2&#039;&#039;&#039;, and returns TRUE if they are identical.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== File Read/Write ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadFragment&#039;&#039;&#039;(const FileName: WideString; Start, Length: Integer): String; &lt;br /&gt;
| Starting at position &#039;&#039;&#039;Start&#039;&#039;&#039;, read &#039;&#039;&#039;Length&#039;&#039;&#039; number of characters of the file &#039;&#039;&#039;FileName&#039;&#039;&#039; and return them as a string. &#039;&#039;&#039;Start&#039;&#039;&#039; is 0-based, so in order to start the fragment at the beginning of the file, set this parameter to 0 (zero).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadLine&#039;&#039;&#039;(const FileName: WideString; LineNum: Integer): String; &lt;br /&gt;
| Read a line from a file &#039;&#039;&#039;FileName&#039;&#039;&#039; specified by a line index &#039;&#039;&#039;LineNum&#039;&#039;&#039;. &#039;&#039;&#039;LineNum&#039;&#039;&#039; is 1 based, so to get the first line set this parameter to 1 (one).&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; This function is extremely inefficient and provided only for convenience!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer; &lt;br /&gt;
| Count number of lines in the file.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; This function is extremely inefficient and provided only for convenience!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String; &lt;br /&gt;
| Return the entire content of the file as a String.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| Write &#039;&#039;&#039;Content&#039;&#039;&#039; to the file. If target file already exists, it will be overwritten.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| Append &#039;&#039;&#039;Content&#039;&#039;&#039; to the end of the file. If target file does not exist, it will be created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== File Time ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileTimeModified&#039;&#039;&#039;(const FileName: WideString): TDateTime; &lt;br /&gt;
| Returns last modified time of the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileTimeCreated&#039;&#039;&#039;(const FileName: WideString): TDateTime; &lt;br /&gt;
| Returns creation time of the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;SetFileTimeCreated&#039;&#039;&#039;(const FileName: WideString; const DateTime: TDateTime): Boolean; &lt;br /&gt;
| Sets creation time for the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;SetFileTimeModified&#039;&#039;&#039;(const FileName: WideString; const DateTime: TDateTime): Boolean; &lt;br /&gt;
| Sets last modified time for the specified file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Process Execution ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;ShellOpenFile&#039;&#039;&#039;(const FileName: WideString): Boolean; &lt;br /&gt;
| Run (open) a file specified by &#039;&#039;&#039;FileName&#039;&#039;&#039;. Works like &amp;quot;Start &amp;amp;gt; Run&amp;quot; command. Parameter does not have to be an executable file, it can by any file or protocol with assigned handler. For example, you can open a Word document or a web page, and associated application will be launched:&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
* ShellOpenFile(&amp;lt;nowiki&amp;gt;&#039;http://www.den4b.com/&#039;&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
* ShellOpenFile(&amp;lt;nowiki&amp;gt;&#039;C:\Document.doc&#039;&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;ExecuteProgram&#039;&#039;&#039;(const Command: String; WaitForProgram: Boolean): Cardinal; &lt;br /&gt;
| Execute a command line specified by parameter &#039;&#039;&#039;Command&#039;&#039;&#039;. Works like &amp;quot;Command Prompt&amp;quot;. Parameter &#039;&#039;&#039;WaitForProgram&#039;&#039;&#039; allows you to specify whether the code needs to wait until the command (launched program) has finished executing.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;ExecConsoleApp&#039;&#039;&#039;(const CommandLine: String; out Output: String): Cardinal; &lt;br /&gt;
| Execute a command line specified by parameter &#039;&#039;&#039;CommandLine&#039;&#039;&#039; and record its standard output in the variable &#039;&#039;&#039;Output&#039;&#039;&#039;. Works like &amp;quot;Command Prompt&amp;quot;. Should be used only for console style applications. Returns the exit code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Dialogs ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;ShowMessage&#039;&#039;&#039;(const Msg: String); &lt;br /&gt;
| Show a simple dialog with the message specified by &#039;&#039;&#039;Msg&#039;&#039;&#039; parameter.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideShowMessage&#039;&#039;&#039;(const Msg: WideString); &lt;br /&gt;
| Same as &#039;&#039;&#039;ShowMessage&#039;&#039;&#039; function but parameter is Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DialogYesNo&#039;&#039;&#039;(const Msg: String): Boolean; &lt;br /&gt;
| Show a simple prompt with the message specified by &#039;&#039;&#039;Msg&#039;&#039;&#039; parameter and two button: Yes and No. Returns TRUE if user clicks Yes button, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideDialogYesNo&#039;&#039;&#039;(const Msg: WideString): Boolean; &lt;br /&gt;
| Same as &#039;&#039;&#039;DialogYesNo&#039;&#039;&#039; function but parameter is WideString text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String; &lt;br /&gt;
| Displays a simple dialog box with the given &#039;&#039;&#039;ACaption&#039;&#039;&#039; and &#039;&#039;&#039;APrompt&#039;&#039;&#039; message. It asks the user to enter data in a text box on the dialog. A &#039;&#039;&#039;ADefault&#039;&#039;&#039; value is displayed in the text box initially. If the user presses OK, the value from the text box is returned, otherwise &#039;&#039;&#039;ADefault&#039;&#039;&#039; value is returned.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputQuery&#039;&#039;&#039;(const ACaption, APrompt: String; var Value: String): Boolean; &lt;br /&gt;
| Operates similar to &#039;&#039;&#039;InputBox&#039;&#039;&#039; function. The default value and the value of the text box after the dialog is closed are transferred via the &#039;&#039;&#039;Value&#039;&#039;&#039; parameter. Function returns TRUE is user clicked OK, otherwise returns FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString; &lt;br /&gt;
| Same as &#039;&#039;&#039;InputBox&#039;&#039;&#039; function but operates on WideString text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputQuery&#039;&#039;&#039;(const ACaption, APrompt: WideString; var Value: WideString): Boolean; &lt;br /&gt;
| Same as &#039;&#039;&#039;InputQuery&#039;&#039;&#039; function but operates on WideString text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Application ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetApplicationPath&#039;&#039;&#039;: WideString;&lt;br /&gt;
| Return full path to the application, for example: &amp;quot;C:\Program Files\ReNamer\ReNamer.exe&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetApplicationParams&#039;&#039;&#039;: TStringsArray;&lt;br /&gt;
| Return an array of command line parameters which were supplied to the application at launch.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetCurrentFileIndex&#039;&#039;&#039;: Integer;&lt;br /&gt;
| Get index of the current file. Index ranges from &#039;&#039;&#039;1&#039;&#039;&#039; to &#039;&#039;&#039;GetTotalNumberOfFiles&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetTotalNumberOfFiles&#039;&#039;&#039;: Integer;&lt;br /&gt;
| Get total number of files in the application.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetCurrentMarkedFileIndex&#039;&#039;&#039;: Integer;&lt;br /&gt;
| Get index of the current file, counting only &#039;&#039;marked&#039;&#039; files. Index ranges from &#039;&#039;&#039;1&#039;&#039;&#039; to &#039;&#039;&#039;GetTotalNumberOfMarkedFiles&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetTotalNumberOfMarkedFiles&#039;&#039;&#039;: Integer;&lt;br /&gt;
| Get total number of &#039;&#039;marked&#039;&#039; files in the application.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== System ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideGetCurrentDir&#039;&#039;&#039;: WideString; &lt;br /&gt;
| Returns the current working directory.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSetCurrentDir&#039;&#039;&#039;(const Dir: WideString): Boolean; &lt;br /&gt;
| Sets the current working directory to the directory specified by parameter &#039;&#039;&#039;Dir&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideGetTempPath&#039;&#039;&#039;: WideString;&lt;br /&gt;
| Returns system defined temporary directory. If returned value is empty it means that temporary folder could not be determined.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideGetEnvironmentVar&#039;&#039;&#039;(const VarName: WideString): WideString; &lt;br /&gt;
| Returns an environment variable by its name. For example:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  UserName, ComputerName: WideString;&lt;br /&gt;
begin&lt;br /&gt;
  UserName := WideGetEnvironmentVar(&#039;USERNAME&#039;);&lt;br /&gt;
  ComputerName := WideGetEnvironmentVar(&#039;COMPUTERNAME&#039;);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Sleep&#039;&#039;&#039;(Milliseconds: Cardinal); &lt;br /&gt;
| Sleep (pause the execution) for specified number of &#039;&#039;&#039;Milliseconds&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;DivMod&#039;&#039;&#039;(Dividend: Integer; Divisor: Word; var Result, Remainder: Word); &lt;br /&gt;
| Perform integer division and fetch the remainder as well, all in one operation. &#039;&#039;&#039;Dividend&#039;&#039;&#039; is the integer into which you are dividing. &#039;&#039;&#039;Divisor&#039;&#039;&#039; is the value by which to divide &#039;&#039;&#039;Dividend&#039;&#039;&#039;. &#039;&#039;&#039;Result&#039;&#039;&#039; returns the result of the integer division. &#039;&#039;&#039;Remainder&#039;&#039;&#039; returns the remainder (the difference between Result * Divisor and Dividend).&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Randomize&#039;&#039;&#039;; &lt;br /&gt;
| Prepares the random number generator.&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Should only be called once per application cycle, at the start of the process!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;RandomRange&#039;&#039;&#039;(const AFrom, ATo: Integer): Integer; &lt;br /&gt;
| Return a random integer number within the specified range from &#039;&#039;&#039;AFrom&#039;&#039;&#039; (inclusive) to &#039;&#039;&#039;ATo&#039;&#039;&#039; (non-inclusive).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetClipboardText&#039;&#039;&#039;: WideString; &lt;br /&gt;
| Get the content of the the clipboard (text only).&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;SetClipboardText&#039;&#039;&#039;(const S: WideString); &lt;br /&gt;
| Set the content of the the clipboard (text only).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Base64Encode&#039;&#039;&#039;(const S: String): String; &lt;br /&gt;
| Encode string &#039;&#039;&#039;S&#039;&#039;&#039; into [http://en.wikipedia.org/wiki/Base64 Base64]. Useful for encoding binary data in order to minimize the likelihood of data being modified in transit through different systems, like email or internet.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Base64Decode&#039;&#039;&#039;(const S: String): String; &lt;br /&gt;
| Decode [http://en.wikipedia.org/wiki/Base64 Base64] string;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetTickCount&#039;&#039;&#039;: Cardinal; &lt;br /&gt;
| Retrieves the number of milliseconds that have elapsed since the system was started (up to 49.7 days, then timer resets). The precision of this timer is very limited.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;SizeOf&#039;&#039;&#039;(X): Integer; &lt;br /&gt;
| Pass a variable reference to determine the number of bytes used to represent the variable. Pass a type identifier to determine the number of bytes used to represent instances of that type.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;br /&gt;
[[Category:Pascal Script]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Main_menu&amp;diff=2369</id>
		<title>ReNamer:Main menu</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Main_menu&amp;diff=2369"/>
		<updated>2012-12-17T06:30:45Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Help menu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this appendix, all the menus and context menu options are described. &lt;br /&gt;
&lt;br /&gt;
=== File menu  ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menu option &lt;br /&gt;
! Keyboard Shortcut &lt;br /&gt;
! What it does...&lt;br /&gt;
|-&lt;br /&gt;
| New Project&lt;br /&gt;
| CTRL+N &lt;br /&gt;
| Create a new project. Clear all rules and files.&lt;br /&gt;
|-&lt;br /&gt;
| Undo &lt;br /&gt;
| SHFT+CTRL+Z &lt;br /&gt;
| If possible, reverses the effect of the last renaming operation.&lt;br /&gt;
|-&lt;br /&gt;
| Paste &lt;br /&gt;
| SHFT+CTRL+V &lt;br /&gt;
| &lt;br /&gt;
Pastes the selection of files from the clipboard into the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&amp;lt;br&amp;gt;(We assume that you have already copied some files into the clipboard) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Add files &lt;br /&gt;
| F3 &lt;br /&gt;
| Starts a window to select specific file(s) from any folder and add them to the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&lt;br /&gt;
|-&lt;br /&gt;
| Add folders &lt;br /&gt;
| F4 &lt;br /&gt;
| Starts a window to add all files from a chosen folder (behavior depends on [[ReNamer:Menus for the Files pane#Filters_menu|Filter settings]])&lt;br /&gt;
|-&lt;br /&gt;
| Preview &lt;br /&gt;
| F5 &lt;br /&gt;
| Manual preview (not required if &#039;&#039;auto-preview&#039;&#039; mode is on)&lt;br /&gt;
|-&lt;br /&gt;
| Rename &lt;br /&gt;
| F6 &lt;br /&gt;
| Renames the file with a name shown in the &#039;&#039;&#039;New Name&#039;&#039;&#039; (&#039;&#039;&#039;New Path&#039;&#039;&#039;) column in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&lt;br /&gt;
|-&lt;br /&gt;
| Exit &lt;br /&gt;
| ALT+F4 &lt;br /&gt;
| Closes the application&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings menu  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;width: 714px; height: 518px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menu option &lt;br /&gt;
! Keyboard Shortcut &lt;br /&gt;
! What it does...&lt;br /&gt;
|-&lt;br /&gt;
| All Settings &lt;br /&gt;
| F8 &lt;br /&gt;
| See [[ReNamer:Program settings|&#039;&#039;&#039;Program settings&#039;&#039;&#039;]] for details.&lt;br /&gt;
|-&lt;br /&gt;
| General &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#General_settings|&#039;&#039;&#039;General&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
|-&lt;br /&gt;
| Preview &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#Preview_settings|&#039;&#039;&#039;Preview&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
|-&lt;br /&gt;
| Rename &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#Rename_settings|&#039;&#039;&#039;Rename&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
|-&lt;br /&gt;
| Meta tags &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#Meta tags settings|&#039;&#039;&#039;Meta Tags&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Miscellaneous &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#Miscellaneous_settings|&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
|-&lt;br /&gt;
| Filters &lt;br /&gt;
| CTRL+F &lt;br /&gt;
| Changes the default behavior when [[ReNamer:Adding files and folders#Adding_items_using_the_.27Add_Folders.27_button|adding folders]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Presets menu  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Presets are explained [[ReNamer:Using_presets|here]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menu option &lt;br /&gt;
! Keyboard Shortcut &lt;br /&gt;
! What it does...&lt;br /&gt;
|-&lt;br /&gt;
| Load &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
Opens a submenu with a list of all available presets. Click on a preset to load its rules in the &#039;&#039;&#039;Rules&#039;&#039;&#039; pane. If the preset was saved with any filter settings, they will also be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Be aware that all current rules will be lost. If you want to add a preset in the end of the current rules stack use [[ReNamer:Using_presets|&#039;&#039;&#039;Append preset&#039;&#039;&#039;]] option from &#039;&#039;&#039;Preset Manager&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Save As... &lt;br /&gt;
| CTRL+S &lt;br /&gt;
| Saves the current preset.&lt;br /&gt;
|-&lt;br /&gt;
| Manage &lt;br /&gt;
| CTRL+M &lt;br /&gt;
| &lt;br /&gt;
Opens the [[ReNamer:Using_presets|&#039;&#039;&#039;Preset Manager&#039;&#039;&#039;]] dialog. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Browse... &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Browse to folder where presets are stored (via Windows Explorer).&lt;br /&gt;
|-&lt;br /&gt;
| Import... &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Select presets from any folder in your file system, which you want to be copied to ReNamer&#039;s &#039;&#039;&#039;Presets&#039;&#039;&#039; folder.&lt;br /&gt;
|-&lt;br /&gt;
| Create links &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| The following window pops up: &lt;br /&gt;
[[Image:PresetLinksDialog.png|center]] &lt;br /&gt;
&lt;br /&gt;
Shortcuts will be created for every available &#039;&#039;preset&#039;&#039; and placed in the selected folder. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*If the &#039;&#039;&#039;Load with Preset&#039;&#039;&#039; option is selected, links will only open new ReNamer window with the preset loaded into &#039;&#039;&#039;Rules&#039;&#039;&#039; pane and files that where sent to the link loaded into &#039;&#039;&#039;Files&#039;&#039;&#039; pane. Now you can edit rules, delete or add some more rules, and finally rename the files.&amp;lt;br&amp;gt;If the preset contained any filter settings, they will be applied to the files that where sent to the link.&lt;br /&gt;
*If the &#039;&#039;&#039;Rename with Preset&#039;&#039;&#039; option is selected, the linked preset will be loaded and all files which were sent to the link will be automatically renamed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information, please see [[ReNamer:Command Line|Command Line usage]]. &amp;lt;br&amp;gt; &amp;lt;span style=&amp;quot;color: red; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
WARNING: Be careful with the &#039;&#039;&#039;&amp;quot;Rename with Preset&#039;&#039;&#039;&amp;quot; option. It will rename files without asking for your confirmation!&lt;br /&gt;
&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Rescan &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Scans the preset folder for new presets. Useful if you have manually modified the content of the presets folder as you don&#039;t have to restart ReNamer to use them.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Help menu  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menu option &lt;br /&gt;
! Keyboard Shortcut &lt;br /&gt;
! What it does...&lt;br /&gt;
|-&lt;br /&gt;
| User Manual &lt;br /&gt;
| ALT+F1 &lt;br /&gt;
| Opens User Manual file which is distributed with the application (PDF file).&lt;br /&gt;
|-&lt;br /&gt;
| Donate &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
Takes you to the donation web page. &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
Although ReNamer is freeware, you could support the project with a small donation. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| What&#039;s new &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
Pops up a window like this: &lt;br /&gt;
&lt;br /&gt;
[[Image:AboutWindow.png]] &lt;br /&gt;
&lt;br /&gt;
You can check the latest changes here.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| About &lt;br /&gt;
| F1 &lt;br /&gt;
| Pops up a window like this: &lt;br /&gt;
[[Image:WhatsNewWindow.png]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This screen provides you with general information about ReNamer, and contact details in case you are facing any difficulties that are not covered in this manual.&amp;lt;br&amp;gt; &lt;br /&gt;
A right click on the white header of the dialog will place ReNamer&#039;s version information to the clipboard.&lt;br /&gt;
&amp;lt;br&amp;gt;(Now you can paste it into your posts at the forum.)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Main_menu&amp;diff=2368</id>
		<title>ReNamer:Main menu</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Main_menu&amp;diff=2368"/>
		<updated>2012-12-17T06:30:04Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Help menu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this appendix, all the menus and context menu options are described. &lt;br /&gt;
&lt;br /&gt;
=== File menu  ===&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menu option &lt;br /&gt;
! Keyboard Shortcut &lt;br /&gt;
! What it does...&lt;br /&gt;
|-&lt;br /&gt;
| New Project&lt;br /&gt;
| CTRL+N &lt;br /&gt;
| Create a new project. Clear all rules and files.&lt;br /&gt;
|-&lt;br /&gt;
| Undo &lt;br /&gt;
| SHFT+CTRL+Z &lt;br /&gt;
| If possible, reverses the effect of the last renaming operation.&lt;br /&gt;
|-&lt;br /&gt;
| Paste &lt;br /&gt;
| SHFT+CTRL+V &lt;br /&gt;
| &lt;br /&gt;
Pastes the selection of files from the clipboard into the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&amp;lt;br&amp;gt;(We assume that you have already copied some files into the clipboard) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Add files &lt;br /&gt;
| F3 &lt;br /&gt;
| Starts a window to select specific file(s) from any folder and add them to the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&lt;br /&gt;
|-&lt;br /&gt;
| Add folders &lt;br /&gt;
| F4 &lt;br /&gt;
| Starts a window to add all files from a chosen folder (behavior depends on [[ReNamer:Menus for the Files pane#Filters_menu|Filter settings]])&lt;br /&gt;
|-&lt;br /&gt;
| Preview &lt;br /&gt;
| F5 &lt;br /&gt;
| Manual preview (not required if &#039;&#039;auto-preview&#039;&#039; mode is on)&lt;br /&gt;
|-&lt;br /&gt;
| Rename &lt;br /&gt;
| F6 &lt;br /&gt;
| Renames the file with a name shown in the &#039;&#039;&#039;New Name&#039;&#039;&#039; (&#039;&#039;&#039;New Path&#039;&#039;&#039;) column in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&lt;br /&gt;
|-&lt;br /&gt;
| Exit &lt;br /&gt;
| ALT+F4 &lt;br /&gt;
| Closes the application&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Settings menu  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;width: 714px; height: 518px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menu option &lt;br /&gt;
! Keyboard Shortcut &lt;br /&gt;
! What it does...&lt;br /&gt;
|-&lt;br /&gt;
| All Settings &lt;br /&gt;
| F8 &lt;br /&gt;
| See [[ReNamer:Program settings|&#039;&#039;&#039;Program settings&#039;&#039;&#039;]] for details.&lt;br /&gt;
|-&lt;br /&gt;
| General &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#General_settings|&#039;&#039;&#039;General&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
|-&lt;br /&gt;
| Preview &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#Preview_settings|&#039;&#039;&#039;Preview&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
|-&lt;br /&gt;
| Rename &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#Rename_settings|&#039;&#039;&#039;Rename&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
|-&lt;br /&gt;
| Meta tags &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#Meta tags settings|&#039;&#039;&#039;Meta Tags&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Miscellaneous &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Shows the [[ReNamer:Program settings#Miscellaneous_settings|&#039;&#039;&#039;Miscellaneous&#039;&#039;&#039;]] tab of the &#039;&#039;&#039;Settings&#039;&#039;&#039; dialog.&lt;br /&gt;
|-&lt;br /&gt;
| Filters &lt;br /&gt;
| CTRL+F &lt;br /&gt;
| Changes the default behavior when [[ReNamer:Adding files and folders#Adding_items_using_the_.27Add_Folders.27_button|adding folders]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Presets menu  ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Presets are explained [[ReNamer:Using_presets|here]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menu option &lt;br /&gt;
! Keyboard Shortcut &lt;br /&gt;
! What it does...&lt;br /&gt;
|-&lt;br /&gt;
| Load &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
Opens a submenu with a list of all available presets. Click on a preset to load its rules in the &#039;&#039;&#039;Rules&#039;&#039;&#039; pane. If the preset was saved with any filter settings, they will also be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Be aware that all current rules will be lost. If you want to add a preset in the end of the current rules stack use [[ReNamer:Using_presets|&#039;&#039;&#039;Append preset&#039;&#039;&#039;]] option from &#039;&#039;&#039;Preset Manager&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Save As... &lt;br /&gt;
| CTRL+S &lt;br /&gt;
| Saves the current preset.&lt;br /&gt;
|-&lt;br /&gt;
| Manage &lt;br /&gt;
| CTRL+M &lt;br /&gt;
| &lt;br /&gt;
Opens the [[ReNamer:Using_presets|&#039;&#039;&#039;Preset Manager&#039;&#039;&#039;]] dialog. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Browse... &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Browse to folder where presets are stored (via Windows Explorer).&lt;br /&gt;
|-&lt;br /&gt;
| Import... &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Select presets from any folder in your file system, which you want to be copied to ReNamer&#039;s &#039;&#039;&#039;Presets&#039;&#039;&#039; folder.&lt;br /&gt;
|-&lt;br /&gt;
| Create links &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| The following window pops up: &lt;br /&gt;
[[Image:PresetLinksDialog.png|center]] &lt;br /&gt;
&lt;br /&gt;
Shortcuts will be created for every available &#039;&#039;preset&#039;&#039; and placed in the selected folder. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*If the &#039;&#039;&#039;Load with Preset&#039;&#039;&#039; option is selected, links will only open new ReNamer window with the preset loaded into &#039;&#039;&#039;Rules&#039;&#039;&#039; pane and files that where sent to the link loaded into &#039;&#039;&#039;Files&#039;&#039;&#039; pane. Now you can edit rules, delete or add some more rules, and finally rename the files.&amp;lt;br&amp;gt;If the preset contained any filter settings, they will be applied to the files that where sent to the link.&lt;br /&gt;
*If the &#039;&#039;&#039;Rename with Preset&#039;&#039;&#039; option is selected, the linked preset will be loaded and all files which were sent to the link will be automatically renamed. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information, please see [[ReNamer:Command Line|Command Line usage]]. &amp;lt;br&amp;gt; &amp;lt;span style=&amp;quot;color: red; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
WARNING: Be careful with the &#039;&#039;&#039;&amp;quot;Rename with Preset&#039;&#039;&#039;&amp;quot; option. It will rename files without asking for your confirmation!&lt;br /&gt;
&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Rescan &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| Scans the preset folder for new presets. Useful if you have manually modified the content of the presets folder as you don&#039;t have to restart ReNamer to use them.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Help menu  ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menu option &lt;br /&gt;
! Keyboard Shortcut &lt;br /&gt;
! What it does...&lt;br /&gt;
|-&lt;br /&gt;
| User Manual &lt;br /&gt;
| ALT+F1 &lt;br /&gt;
| Opens User Manual file which is distributed with the application (PDF file).&lt;br /&gt;
|-&lt;br /&gt;
| Donate &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
Takes you to the donation web page. &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
Although ReNamer is freeware, you could support the project with a small donation. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| What&#039;s new &lt;br /&gt;
| &amp;lt;br&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
Pops up a window like this: &lt;br /&gt;
&lt;br /&gt;
[[Image:AboutWindow.png]] &lt;br /&gt;
&lt;br /&gt;
You can check the latest changes here.&amp;lt;br&amp;gt; &lt;br /&gt;
A right click on the white header of the dialog will place ReNamer&#039;s version information to the clipboard.&lt;br /&gt;
(Now you can paste it into your posts at the forum.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| About &lt;br /&gt;
| F1 &lt;br /&gt;
| Pops up a window like this: &lt;br /&gt;
[[Image:WhatsNewWindow.png]]&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
This screen provides you with general information about ReNamer, and contact details in case you are facing any difficulties that are not covered in this manual.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Menus_for_the_Files_pane&amp;diff=2366</id>
		<title>ReNamer:Menus for the Files pane</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Menus_for_the_Files_pane&amp;diff=2366"/>
		<updated>2012-12-17T06:15:49Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Export menu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Cleanup|&lt;br /&gt;
* Breakdown into separate articles, one for each main section/menu&lt;br /&gt;
* Clear formatting artifacts from rich editor&lt;br /&gt;
* Update linking from other articles}}&lt;br /&gt;
&lt;br /&gt;
ReNamer has a menu bar between the &#039;&#039;&#039;Rules&#039;&#039;&#039; and &#039;&#039;&#039;Files&#039;&#039;&#039; panes [[Image:MenuStrip.png]].&lt;br /&gt;
&lt;br /&gt;
This appendix describes options available from this menu.&lt;br /&gt;
&lt;br /&gt;
== Files button ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:FilesButton.png]] button, the following list pops up: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:FileMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Analyze Name &lt;br /&gt;
| Opens [[ReNamer:Analyze|analysis window]], and loads the names of the selected files into it.&lt;br /&gt;
|-&lt;br /&gt;
| Edit New Name &#039;&#039;&#039;F2&#039;&#039;&#039; &lt;br /&gt;
| Starts manual editing of the selected filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Shell submenu|Shell]] &lt;br /&gt;
| Options for Windows shell operations.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Mark submenu|Mark]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Marking_and_Unmarking_the_files|marking]] specific items.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Clear submenu|Clear]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Marking_and_Unmarking_the_files|removing]] specific items from the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Select submenu|Select]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Selecting_files|selecting]] specific items.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Move submenu|Move]] &lt;br /&gt;
| Options for moving specific items.&lt;br /&gt;
|-&lt;br /&gt;
| Remove selected items &#039;&#039;&#039;Del&#039;&#039;&#039; &lt;br /&gt;
| Remove selected items from the ReNamer&#039;s &#039;&#039;&#039;File&#039;&#039;&#039; pane. &amp;lt;br&amp;gt;(This command does not delete the items from the disk.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This menu provides second-level options, as follows: &lt;br /&gt;
&lt;br /&gt;
=== Shell submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ShellSubMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Open File&lt;br /&gt;
| &#039;&#039;&#039;Enter&#039;&#039;&#039; &lt;br /&gt;
| Open the selected file using its default associated application.&lt;br /&gt;
|-&lt;br /&gt;
| Open with Notepad&lt;br /&gt;
| &#039;&#039;&#039;Shift+Enter&#039;&#039;&#039; &lt;br /&gt;
| Open the file with notepad. Useful when you want to see the raw data in the file. (When viewed this way, the file will not be displayed in its original formatting. It may not be easily readable.)&lt;br /&gt;
|-&lt;br /&gt;
| Open operating folder&lt;br /&gt;
| &#039;&#039;&#039;Ctrl+Enter&#039;&#039;&#039; &lt;br /&gt;
| Launch Windows Explorer and open the folder where the selected file is located. Highlight (select) the file in it.&lt;br /&gt;
|-&lt;br /&gt;
| File properties&lt;br /&gt;
| &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039; &lt;br /&gt;
| Display the properties of the selected file. Typically, file size, dates (created/modified/accessed), comments, author, attributes (hidden, system, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| Cut Files to clipboard&lt;br /&gt;
| &#039;&#039;&#039;Shift+Ctrl+X&#039;&#039;&#039; &lt;br /&gt;
| Cuts the selected file(s) to clipboard.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; If you paste these files in Windows Explorer, all files will be &amp;lt;u&amp;gt;moved&amp;lt;/u&amp;gt; to one folder, no matter where they were initially located.&lt;br /&gt;
|-&lt;br /&gt;
| Copy Files to clipboard&lt;br /&gt;
| &#039;&#039;&#039;Shift+Ctrl+C&#039;&#039;&#039; &lt;br /&gt;
| Copies selected file(s) to clipboard.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; If you paste these files in Windows Explorer, all files will be &amp;lt;u&amp;gt;copied&amp;lt;/u&amp;gt; to one folder, no matter where they were initially located.&lt;br /&gt;
|-&lt;br /&gt;
| Delete files to Recycle Bin &lt;br /&gt;
|&lt;br /&gt;
| Deletes the selected file(s) to Recycle Bin. (They can be recovered from the Recycle Bin.) &lt;br /&gt;
Note that if the file is too large for the Recycle Bin, Windows will warn you that it will not be put in Recycle Bin, but deleted permanently. If you confirm, the file is deleted permanently. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are 2 possible uses for &#039;&#039;&#039;Copy to clipboard&#039;&#039;&#039; and &#039;&#039;&#039;Cut to clipboard&#039;&#039;&#039; options:&lt;br /&gt;
* 3rd party application can retrieve that list of files from the clipboard (using Paste operation or Win API).&lt;br /&gt;
* Paste all files into a singe destination folder via Windows Explorer, even when files are scattered across different directories.&lt;br /&gt;
&lt;br /&gt;
=== Mark submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:MarkSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;&amp;lt;/u&amp;gt;&#039;&#039;&#039;: &#039;&#039;&#039;Marking of files is explained [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|here]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Mark &#039;&#039;&#039;Shift+M&#039;&#039;&#039; &lt;br /&gt;
| Mark all selected files. If some files are already marked, they remain marked.&lt;br /&gt;
|-&lt;br /&gt;
| UnMark &#039;&#039;&#039;Shift+U&#039;&#039;&#039; &lt;br /&gt;
| Unmark all selected files. If some files are already unmarked, they remain unmarked.&lt;br /&gt;
|-&lt;br /&gt;
| Invert Marking &#039;&#039;&#039;Ins&#039;&#039;&#039; &lt;br /&gt;
| Marked files become unmarked, and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
| Mark only changed&amp;lt;br&amp;gt;(Inc. Case) &lt;br /&gt;
| [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|Mark]] files that have been changed. Files that had just change of case (and nothing else) will &amp;lt;u&amp;gt;also&amp;lt;/u&amp;gt; be marked.&amp;lt;br&amp;gt;(&amp;quot;&#039;&#039;Change of case&#039;&#039;&amp;quot; means some letters are converted capital-to-small and/or small-to-capital)&lt;br /&gt;
|-&lt;br /&gt;
| Mark only changed&amp;lt;br&amp;gt;(Exc. Case) &lt;br /&gt;
| [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|Mark]] files that have been changed, but do &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; consider changes of case.&amp;lt;br&amp;gt; (&amp;quot;&#039;&#039;Change of case&#039;&#039;&amp;quot; means some letters are converted capital-to-small and/or small-to-capital)&lt;br /&gt;
|-&lt;br /&gt;
| Mark only selected &lt;br /&gt;
| Mark files that are selected. If some unselected files are already marked, they will be unmarked.&lt;br /&gt;
|-&lt;br /&gt;
| Mark by Mask &lt;br /&gt;
| Pops up a Mask window: &lt;br /&gt;
[[Image:MarkByMask.png]] &lt;br /&gt;
&lt;br /&gt;
Specify a mask pattern. All files that match this mask will be marked. &lt;br /&gt;
&lt;br /&gt;
You can enter multiple masks (separating them with semicolon). If a file matches any of these masks, it will be marked. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Clear submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ClearSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;&amp;lt;/u&amp;gt;: The term &amp;quot;&#039;&#039;Clear&#039;&#039;&amp;quot; means remove from &#039;&#039;&#039;Files&#039;&#039;&#039; pane of ReNamer.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Clear All &lt;br /&gt;
| Clear all files loaded in the pane.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Renamed &lt;br /&gt;
| Clear all files which have been renamed just before this command. Note that even if some files are not affected by the rules, they are still regarded as renamed successfully. &lt;br /&gt;
Only files that failed to rename (those with an &#039;&#039;&#039;x&#039;&#039;&#039; mark) will remain in the pane. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear Failed &lt;br /&gt;
| Only files that failed to rename (those with an &#039;&#039;&#039;x&#039;&#039;&#039; mark) will be cleared. &lt;br /&gt;
All other files (including files whose names were not altered by the rules) will remain in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear Valid &lt;br /&gt;
| Clear files that have valid names after Preview (but haven&#039;t been renamed yet).&lt;br /&gt;
|-&lt;br /&gt;
| Clear Invalid &lt;br /&gt;
| Clear files that got invalid (causing conflicts, empty or with forbidden characters etc.) names after Preview (but before renaming).&lt;br /&gt;
|-&lt;br /&gt;
| Clear Marked &lt;br /&gt;
| Clear all marked files.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Not Marked &lt;br /&gt;
| Clear all files that are not marked.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Not Changed &#039;&#039;&#039;Ctrl+D&#039;&#039;&#039; &lt;br /&gt;
| Clear all files that haven&#039;t been changed by the Preview. This also includes all files that have their New Name field empty (eg. because they have been successfully renamed or haven&#039;t been previewed since last renaming operation).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Select submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:SelectSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
Note: Selection of files is explained [[ReNamer:Adding files and folders#Selecting_files|here]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Select All&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+A&#039;&#039;&#039; &lt;br /&gt;
| All files in the pane will be selected.&lt;br /&gt;
|-&lt;br /&gt;
| Invert Selection&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+I&#039;&#039;&#039; &lt;br /&gt;
| Selected files become deselected, and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
| Select by Name Length&amp;amp;nbsp; &#039;&#039;&#039;Ctrl+L&#039;&#039;&#039; &lt;br /&gt;
| Pops up a window: &lt;br /&gt;
[[Image:SelectByFileNameLengthDialog.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the length of file name. Only files that exceed that length will be selected. &lt;br /&gt;
&lt;br /&gt;
The length refers to the whole filename including dot and the extension. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: A typical application is to check if the file can be put on a CD/DVD. The maximum length allowed in ISO 9660-compliant file-system is 64 characters. Longer file names are truncated when you burn a CD/DVD. It is difficult to correlate such files with their originals. To avoid such problems, shorten the names &#039;&#039;before&#039;&#039; burning the CD/DVD. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Select by Extension &#039;&#039;&#039;Ctrl+E&#039;&#039;&#039; &lt;br /&gt;
| Pops up a window: &lt;br /&gt;
[[Image:SelectByExtnDialog.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the extension (without the dot). All files having that extension will be selected. &lt;br /&gt;
&lt;br /&gt;
You can enter multiple extensions (they must be separated by semicolons - not comma). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Select by Mask&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+M&#039;&#039;&#039; &lt;br /&gt;
| Pops up this window: &lt;br /&gt;
[[Image:SelectByMask.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the [[ReNamer:Masks|mask]]. All files matching that pattern will be selected. &amp;lt;br&amp;gt;You can enter multiple masks (they must be separated by semicolons - not comma). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Move submenu ===&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:MoveSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Up &#039;&#039;&#039;Ctrl+Up&#039;&#039;&#039; &lt;br /&gt;
| Moves the selected file up. This is used to re-arrange files in the list. &lt;br /&gt;
It is easier to use the keyboard shortcut &#039;&#039;&#039;CTRL+UpArrow&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Down &#039;&#039;&#039;Ctrl+Down&#039;&#039;&#039; &lt;br /&gt;
| Moves the selected file down. This is used to re-arrange the files list. &lt;br /&gt;
It is easier to use the keyboard shortcut &#039;&#039;&#039;CTRL+DownArrow&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Filters menu ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:FiltersButton.png]] button, the &#039;&#039;&#039;Filters&#039;&#039;&#039; window pops up. It controls what gets added to the &#039;&#039;&#039;Files&#039;&#039;&#039; pane when you use the&amp;amp;nbsp;[[Image:AddFoldersButton.png]] button or [[ReNamer:Adding files and folders#Adding files using the Drag-and-drop method|Drag &amp;amp; Drop]] or [[ReNamer:Adding files and folders#Adding files using the copy-and-paste method |Copy &amp;amp; Paste]] methods.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:FilterSettingsDialog.png]] &lt;br /&gt;
| The options work as follows: &lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Option&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Effect&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Add files within folders &lt;br /&gt;
| When this option is selected, ReNamer scans the selected folders iteratively (including its subfolders), and loads all the files for renaming. If you want to rename only the folders (and not their contents), UNTICK this option, and select the &#039;&#039;&#039;Add folders as files&#039;&#039;&#039; checkbox.&lt;br /&gt;
|-&lt;br /&gt;
| Add folders as files &lt;br /&gt;
| If this option is selected, ReNamer treats a folder just like a file (not as a container that holds files and subfolders). So only the folder is loaded, and not the files in it. This is useful for renaming the folder itself. &lt;br /&gt;
|-&lt;br /&gt;
| Include subfolders &lt;br /&gt;
| Loads contents from all subfolders recursively. &amp;lt;br&amp;gt;If this option is unselected, when you add a folder, its subfolders will be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| Include hidden items &lt;br /&gt;
| To protect hidden items, deselect this option.&lt;br /&gt;
|-&lt;br /&gt;
| Include system items &lt;br /&gt;
| To protect files reserved for system (OS), deselect this option.&lt;br /&gt;
|-&lt;br /&gt;
| Skip root folders when added as files &lt;br /&gt;
| Works when the &#039;&#039;Add folders as files&#039;&#039; and &#039;&#039;Include subfolders&#039;&#039; options are selected. When it&#039;s on, ReNamer adds all the subfolders but not the root folder itself.&lt;br /&gt;
|-&lt;br /&gt;
| Masks &lt;br /&gt;
| All added files (or folders as files) must match specified [[ReNamer:Masks|mask(s)]]. For example, if you enter &#039;&#039;&#039;*.jpg;*.gif;*.png&#039;&#039;&#039; as masks, ReNamer will add only files with these extensions. Everything else will be filtered &#039;&#039;out&#039;&#039;(not added to ReNamer).&lt;br /&gt;
|-&lt;br /&gt;
| Apply only to the file name &lt;br /&gt;
| Changes how the masks (see above) are applied. &lt;br /&gt;
For example, suppose you have file &#039;&#039;&#039;&#039;&#039;C:\Folder\File.ext&#039;&#039;&#039;&#039;&#039;. If &#039;&#039;this&#039;&#039; option is ON, only the filename part (&#039;&#039;&#039;&#039;&#039;File.ext&#039;&#039;&#039;&#039;&#039;) will be checked against the mask(s). But if &#039;&#039;this&#039;&#039; option is OFF, the entire path (&#039;&#039;&#039;&#039;&#039;C:\Folder\File.ext&#039;&#039;&#039;&#039;&#039;) will be checked against the mask(s). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Save&#039;&#039;&#039; to save changes. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filters&#039;&#039;&#039; menu is also accessible from the &#039;&#039;&#039;Add Folder&#039;&#039;&#039; window. For details see [[ReNamer:Adding files and folders#Adding items using the &#039;Add Folders&#039; button |Adding items using the &#039;Add Folders&#039; button]] section.&lt;br /&gt;
&lt;br /&gt;
== Export menu ==&lt;br /&gt;
When you click on the [[Image:ExportButton.png]] button, the following list pops up: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ExportMenu.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Export file paths and undo paths&lt;br /&gt;
| Exports &#039;&#039;file paths&#039;&#039; and &#039;&#039;undo paths&#039;&#039; to the .csv (comma separated) or .txt (tab separated) file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Export file paths and new names&lt;br /&gt;
| Exports &#039;&#039;file paths&#039;&#039; and &#039;&#039;new names&#039;&#039; to the .csv (comma separated) or .txt (tab separated) file. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import file paths and new names&lt;br /&gt;
| Imports &#039;&#039;file paths&#039;&#039; and &#039;&#039;new names&#039;&#039; from the .csv (comma separated) or .txt (tab separated) file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import files from text-list or play-list&lt;br /&gt;
| Imports &#039;&#039;file paths&#039;&#039; from the .txt/.log file (one file per line) or .m3u/.pls playlist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; It will load file paths into &#039;&#039;&#039;Files&#039;&#039;&#039; pane only if the file really exists on your file system.&lt;br /&gt;
|-&lt;br /&gt;
|Export as batch renaming file (Full paths)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Export as batch renaming file (Only names)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Export new names to clipboard&lt;br /&gt;
| Export &#039;&#039;new names&#039;&#039; to clipboard. One name per line.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import new names from clipboard&lt;br /&gt;
| Imports &#039;&#039;new names&#039;&#039; from clipboard. Every name should be placed in a new line.&lt;br /&gt;
&lt;br /&gt;
If there is less lines in the clipboard text than files in &#039;&#039;&#039;Files&#039;&#039;&#039; pane last files won&#039;t be renamed.&amp;lt;br&amp;gt;&lt;br /&gt;
If there is more lines in the clipboard text than files in &#039;&#039;&#039;Files&#039;&#039;&#039; pane, then last lines won&#039;t be used.&lt;br /&gt;
|-&lt;br /&gt;
| Export all columns to clipboard&lt;br /&gt;
| Exports &#039;&#039;all columns&#039;&#039; to clipboard as a tab separated text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Options menu ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:OptionsButton.png]] button, the following list pops up: &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:OptionsMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Autosize columns &lt;br /&gt;
| Auto-size all columns, to accommodate the longest entry in each column.&lt;br /&gt;
|-&lt;br /&gt;
| Validate new names &lt;br /&gt;
| Check if the new names are valid.&lt;br /&gt;
|-&lt;br /&gt;
| Fix conflicting new names &lt;br /&gt;
| Add incremental numbers as suffixes to avoid conflicts in names. For example, if a new name for a file is Name1, and if such a file already exists in the target folder, then a suffix (2) is added to the newly renamed file. If more than one files have such name conflicts, ReNamer uses incremental numbers (i.e. (2), (3)...) as suffixes to make sure that each file gets a unique name.&lt;br /&gt;
|-&lt;br /&gt;
| Highlight changed names &lt;br /&gt;
| Usually you load files only because you want to change their names. Yet, sometimes, some files escape all the rules you have loaded and remain unchanged. In such cases, you may want to know why that happened. &lt;br /&gt;
ReNamer can highlight files that are going to be changed. Now you can investigate the remaining files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;Highlight changed names&#039;&#039; option works as a switch: it turns highlighting ON and OFF.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can unmark the rules selectively and see the effect on the files. That will tell you which rules are working on which files. Once your analysis is over, you can mark all rules. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Analyze sample text &lt;br /&gt;
| It opens the [[ReNamer:Analyze|Analyze window]].&lt;br /&gt;
Thanks to that option you don&#039;t have to load files to the &#039;&#039;&#039;Files&#039;&#039;&#039; pane just to check if your rules work as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
It is extremally useful when you want to help others on the forum.&lt;br /&gt;
&lt;br /&gt;
*Enter any text that looks like your target files, and see whether the rules work as desired on that text. &lt;br /&gt;
*Edit the rules if the desired result is not achieved &lt;br /&gt;
*Once you are satisfied with the rules, apply them on the real files or post the set of rules on the forum.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Analyze sample text won&#039;t be any help if the rules base on the files properties (and not only on the filename). Analyze tool won&#039;t be able eg. to extract Meta tag from the text in its window.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Apply rules to the clipboard &lt;br /&gt;
| When you choose this option your rules will be applied to the text in clipboard instead of files in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane. This might be useful eg. when working with word processors that don&#039;t support RegEx&#039;es.&lt;br /&gt;
|-&lt;br /&gt;
| Count marked and selected files &#039;&#039;&#039;Alt + I&#039;&#039;&#039;&lt;br /&gt;
| It pops up a window like this &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Count_marked_selected.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;&#039;Total&#039;&#039;&#039; stands for total number of files loaded into the &#039;&#039;&#039;Files&#039;&#039;&#039; pane, and&lt;br /&gt;
&#039;&#039;&#039;Marked&#039;&#039;&#039; and &#039;&#039;&#039;Selected&#039;&#039;&#039; stand for number of marked and selected files respectively.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=File:ExportMenu.png&amp;diff=2365</id>
		<title>File:ExportMenu.png</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=File:ExportMenu.png&amp;diff=2365"/>
		<updated>2012-12-17T06:10:45Z</updated>

		<summary type="html">&lt;p&gt;Narayan: uploaded a new version of &amp;amp;quot;File:ExportMenu.png&amp;amp;quot;: * Added option to export files to a batch renaming file;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Export Menu&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Case&amp;diff=2364</id>
		<title>ReNamer:Rules:Case</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Case&amp;diff=2364"/>
		<updated>2012-12-17T06:06:15Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Case Rule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Strip|next=ReNamer:Rules:Serialize}}&lt;br /&gt;
&lt;br /&gt;
== Case Rule  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:CaseRule.png|center]]&lt;br /&gt;
&lt;br /&gt;
This rule changes the case of the filename. Options are: capitalize, to lower case, to upper case, invert case, and put only first letter capital (as in a sentence). &lt;br /&gt;
&lt;br /&gt;
There is also an option to force case for specific text-fragments, such as CD, DVD, RF, etc. These fragments would not look natural in any other case (e.g. cd, dvd, rf), so the rule allows you to prevent changing the case of such terms in one stroke. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| Case change &lt;br /&gt;
| Several options are offered. &lt;br /&gt;
*The case of each option itself illustrates how that option works. For example, &#039;&#039;&#039;Capitalise Every Word&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Invert case&#039;&#039;&#039; will change all capital letters in the filename to lowercased ones, and all lowercased letters to capitalized ones.&lt;br /&gt;
&lt;br /&gt;
*The &#039;&#039;&#039;(none of the above)&#039;&#039;&#039; option is provided to disable the case conversions listed on the left, so you could independently operate the two options listed on the right side.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is selected, the extension will be ignored by the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Force case for fragments &lt;br /&gt;
| &lt;br /&gt;
This option forces the case of specified text-fragments (strings) in the file name. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Note&amp;lt;/u&amp;gt;: This check box is coupled with the box below it. (Enter the fragments in the box and then activate the option by selecting the check box.) &lt;br /&gt;
&lt;br /&gt;
*You can set any case for the strings (ALLCAPS, Only first letter capitalized, lowercase, MixedCase, etc.)&lt;br /&gt;
&lt;br /&gt;
*You can specify &#039;&#039;multiple&#039;&#039; strings at a time, each with its own case format. To separate the strings from each other, put a comma between them.&amp;lt;br&amp;gt;(Note: In versions prior to v5.50, a space was used instead of a comma.)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The case for these strings will be set exactly as entered in the box, regardless of the options selected in &#039;&#039;&#039;Case change&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
Here are some typical examples of such strings: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Case&lt;br /&gt;
! Examples&lt;br /&gt;
|-&lt;br /&gt;
| ALLCAPS&lt;br /&gt;
| CD, DVD, TV, HTML, XML, C++, USA, GIMP&lt;br /&gt;
|-&lt;br /&gt;
| Only the First letter capitalized&lt;br /&gt;
| Java, India, English, Sunday, Easter, February&lt;br /&gt;
|-&lt;br /&gt;
| Mixed case&lt;br /&gt;
| OpenSUSE, OpenOffice, ReNamer&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| Extension always upper case &lt;br /&gt;
| Forces the extension to uppercase. &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting overrides any other setting that can alter the extension. For example, consider a case where the &#039;&#039;&#039;all lowercase&#039;&#039;&#039; option is selected and the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is deselected. Logically, the extension should be converted into lowercase too. But if the &#039;&#039;&#039;Extension always upper case &#039;&#039;&#039;option is selected, the case of the extension will be converted to uppercase. This setting will override even the fragments case-conversion.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Extension always lower case &lt;br /&gt;
| Forces the extension to lowercase. &lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This setting overrides any other setting that can alter the extension. For example, consider a case where the &#039;&#039;&#039;ALL UPPER CASE&#039;&#039;&#039; option is selected and the &#039;&#039;&#039;skip extension&#039;&#039;&#039; option is deselected. Logically, the extension should be converted into ALLCAPS. But if the &#039;&#039;&#039;Extension always lower case&#039;&#039;&#039; option is selected, the case of the extension will be converted to lowercase. This setting will override even the fragments case-conversion. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=File:CaseRule.png&amp;diff=2363</id>
		<title>File:CaseRule.png</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=File:CaseRule.png&amp;diff=2363"/>
		<updated>2012-12-17T06:02:22Z</updated>

		<summary type="html">&lt;p&gt;Narayan: uploaded a new version of &amp;amp;quot;File:CaseRule.png&amp;amp;quot;: Added &amp;quot;Extension always upper case&amp;quot; option to the Case rule&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Case Rule&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=File:PreviewSettingsDialog.png&amp;diff=2362</id>
		<title>File:PreviewSettingsDialog.png</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=File:PreviewSettingsDialog.png&amp;diff=2362"/>
		<updated>2012-12-17T05:56:40Z</updated>

		<summary type="html">&lt;p&gt;Narayan: uploaded a new version of &amp;amp;quot;File:PreviewSettingsDialog.png&amp;amp;quot;: * Added &amp;quot;Fix conflicting new names on preview&amp;quot; option in the Settings;
* A more detailed warning message for the real-time preview option;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Preview Settings Dialog&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Program_settings&amp;diff=2361</id>
		<title>ReNamer:Program settings</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Program_settings&amp;diff=2361"/>
		<updated>2012-12-17T05:52:14Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Preview settings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This appendix describes the settings that change ReNamer&#039;s behavior in various ways. &lt;br /&gt;
&lt;br /&gt;
=== General settings ===&lt;br /&gt;
These settings are applicable to the ReNamer application.&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:GeneralSettingsDialog.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Always on top (main window only)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Keeps the ReNamer window above the other windows. &lt;br /&gt;
&lt;br /&gt;
This feature is useful when you are using the drag-and-drop method to add files from Windows Explorer. When you are working in Windows Explorer, the ReNamer window does not vanish below the Windows Explorer window.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Remember last position and size&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | ReNamer will retain the same size and position in the next session. You will not need to resize/re-position the ReNamer window each time you start it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Remember sorting options (files table)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | ReNamer will retain the file sorting order in the next session.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Save rules configuration on exit, load on start up&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | In the next session, ReNamer retains all rules that are currently loaded in the &#039;&#039;&#039;Rules&#039;&#039;&#039; pane. Useful if you use the same rules every time.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Always show non-main forms centered&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | All windows and dialog boxes (except the main window) appear in the center of the ReNamer window. You still may shift the new window, but when you close it and open again it will be opened in the center of ReNamer window. If the option is deselected window would reopen in its old position.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Use natural order sorting algorithm &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | ReNamer has two different types of sorting algorithms:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Order&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Example&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Remarks&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Natural&lt;br /&gt;
| &amp;lt;center&amp;gt;Name1.ext&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Name2.ext&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Name10.ext&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Name20.ext&amp;lt;/center&amp;gt;&lt;br /&gt;
| Numbers are sorted in their natural order.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Lexicographical &lt;br /&gt;
| &amp;lt;center&amp;gt;Name1.ext&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Name10.ext&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Name2.ext&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;Name20.ext&amp;lt;/center&amp;gt;&lt;br /&gt;
| Sorts like in a dictionary. All entries are sorted based on characters&#039; positions, counted from left.&lt;br /&gt;
|}&lt;br /&gt;
If this option is selected, filenames are sorted in &#039;&#039;&#039;Natural&#039;&#039;&#039; order; otherwise they are sorted in &#039;&#039;&#039;Lexicographical&#039;&#039;&#039; order.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Preview settings ===&lt;br /&gt;
These settings are applicable only to the previewing.&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:PreviewSettingsDialog.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Autosize table on change&lt;br /&gt;
| Each column resizes automatically to accommodate the longest name in it.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Auto preview on change of rules configurations&lt;br /&gt;
| Whenever a rule is added/deleted/edited, the preview refreshes automatically&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Auto preview when new files are added&lt;br /&gt;
| Whenever a file is added, the preview refreshes automatically&lt;br /&gt;
|-&lt;br /&gt;
|Fix conflicting new names on preview&lt;br /&gt;
|If the new file names are going to conflict, then this option resolves the conflict by adding a suffix number in &#039;&#039;&#039;(n)&#039;&#039;&#039; format.&lt;br /&gt;
|-&lt;br /&gt;
| Validate new filenames on preview&lt;br /&gt;
| Raises a warning if new filenames are not valid:&lt;br /&gt;
* There are duplicates in the &#039;&#039;New path&#039;&#039; column&lt;br /&gt;
* &#039;&#039;New path&#039;&#039; contains forbidden characters&lt;br /&gt;
* &#039;&#039;New path&#039;&#039; is already taken by an existing file&lt;br /&gt;
* &#039;&#039;New path&#039;&#039; exceeds maximum length (256 characters)&lt;br /&gt;
|-&lt;br /&gt;
| Real-time update of the preview&lt;br /&gt;
| If this option is selected, when you click the &#039;&#039;&#039;Preview &#039;&#039;&#039;button, files will be updated one-by-one and displayed in the table. During the processing, ReNamer continues to accept any user inputs (mouse/keyboard).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; font-weight: bold&amp;quot;&amp;gt;&lt;br /&gt;
WARNING: This option allows you to use mouse/keyboard even when the previous rules are being processed. This may lead to unpredictable behavior and consequences! Use this option with EXTREME CAUTION, only for cases when some heavy processing is done on each file, for example: using HASH functions or other types of content analysis.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If this option is deselected, when you click &#039;&#039;&#039;Preview&#039;&#039;&#039; button, ReNamer shows nothing till all files are processed; after which all files are displayed at once. During the processing, ReNamer will stop accepting any user inputs (mouse/keyboard). This mode is safe. &#039;&#039;&#039;For normal use, deselect this option!&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rename settings ===&lt;br /&gt;
These settings are applicable to the renaming process. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:RenameSettingsDialog.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ReNamer can boost your productivity by doing certain operations on its own. On the other hand, you may want to have the flexibility of choosing your options each time. So this panel lets you decide how to strike a balance! &lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Display message on successful rename&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Deselect if you do not want a message each time.&lt;br /&gt;
&lt;br /&gt;
(This setting is not applicable to the pop-up windows that show the error messages. Those windows are &#039;&#039;always&#039;&#039; shown.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Close program after successful rename&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Useful if you use ReNamer sparingly (rename once and close ReNamer.)&lt;br /&gt;
&lt;br /&gt;
In case of problem, ReNamer stays open.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear rules list after rename&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Useful if you use a different set of rules each time. This option will clear off the &#039;&#039;&#039;Rules&#039;&#039;&#039; pane automatically.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear files table on rename&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Useful if you want to load another set of files for each new renaming. &lt;br /&gt;
&lt;br /&gt;
Note that even files that were not renamed in the last round will get cleared off. So, &#039;&#039;&#039;deselect&#039;&#039;&#039; this option if you tend to rename your loaded files in 2-3 separate renaming operations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; This will make &#039;&#039;&#039;Undo&#039;&#039;&#039; option unusable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear renamed files on rename&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Clears off the files once you have finished renaming them.&lt;br /&gt;
&lt;br /&gt;
Note that the files that were not renamed will remain behind, so that you can apply a new set of rules to them.&lt;br /&gt;
&lt;br /&gt;
Note that the currently &#039;&#039;marked&#039;&#039; set of rules may not change some file names (for example, if you want to insert a string at 10&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; position, and we have some files with shorter file names.) Even in such cases, the files are considered to be renamed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; This will make &#039;&#039;&#039;Undo&#039;&#039;&#039; option unusable.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Overwrite files with new names&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | If there is a naming conflict as a result of renaming, the newly renamed files can overwrite the existing files with the same names automatically. &lt;br /&gt;
&lt;br /&gt;
Note that the name conflict can occur with a file that exists in the same folder, but which is NOT loaded in ReNamer.&lt;br /&gt;
&lt;br /&gt;
Note also that multiple files from the same folder may be renamed in such a way that most of them get overwritten in sequence. In the worst case, only the last file to be renamed will survive! &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; font-weight: bold&amp;quot;&amp;gt;&lt;br /&gt;
CAUTION: Your important files can be overwritten without your knowledge!&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Must be successfully confirmed by user&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | (Applicable only when &#039;&#039;&#039;Overwrite files with new names&#039;&#039;&#039; option is selected): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Selected&lt;br /&gt;
| ReNamer will pop up confirmation dialog for every file that is to be overwritten. The old file will be overwritten only if you confirm. (If the renamed file has no conflicts in its folder, ReNamer will rename it without asking for permission.).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Deselected&lt;br /&gt;
| If a renamed file has the same name as an existing file, ReNamer will overwrite the old file silently.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; font-weight: bold&amp;quot;&amp;gt;&lt;br /&gt;
CAUTION: Your important files can be overwritten without your knowledge!&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Meta tags settings  ===&lt;br /&gt;
&lt;br /&gt;
These settings are for meta-tags only. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:MetaTagsSettingsDialog.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Meta tag support &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Extracting meta-tags from files puts heavy demand on system resources. So if you do not need meta-tags, deselect this option. The system will become more responsive (not only ReNamer, but other applications as well.).&lt;br /&gt;
|-&lt;br /&gt;
| Date format &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Sets the date format for ReNamer&#039;s use. (The selected date format will be used for naming files.) See [[ReNamer:Date_and_Time_format|Date-time format used in Meta tags]] to see available formats.&lt;br /&gt;
|-&lt;br /&gt;
| Preview &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Tests the current date-time format, using current time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous settings ===&lt;br /&gt;
A general-purpose tab to provide all miscellaneous settings.&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:MiscSettingsDialog.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Register preset extension (*.rnp)&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | Associate the .rnp extension with ReNamer.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Add to folders context menu&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | in Windows Explorer, a ReNamer option is added to the context menu for folders.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Add to Send to context menu&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | in Windows Explorer, a ReNamer option is added to the Send to... context menu.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Change text of &amp;quot;Drag your files here&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The lower pane of ReNamer will show your custom text when empty&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Change text of &amp;quot;Click here to add a rule&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | The upper pane of ReNamer will show your custom text when empty&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Renaming_folders&amp;diff=2352</id>
		<title>ReNamer:Renaming folders</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Renaming_folders&amp;diff=2352"/>
		<updated>2012-09-11T17:37:14Z</updated>

		<summary type="html">&lt;p&gt;Narayan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ReNamer]] has several [[ReNamer:Filter settings|filter options]] which configure how added items (files and folders) are treated. &lt;br /&gt;
&lt;br /&gt;
By default, folders are not added to the renaming list as items, instead, their contents are added to the renaming list. To rename the folders themselves, open [[ReNamer:Filter settings|filter settings]] and enable option &amp;quot;&#039;&#039;&#039;Add folders as files&#039;&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Extensions in Folders?===&lt;br /&gt;
Note that [[ReNamer:Skip extension|Skip extension]] option also affects folders. (If there are any periods in the name of a folder, the portion on the right side of the last period is treated as extension. &lt;br /&gt;
&lt;br /&gt;
A typical example is folders that contain tutorials: &#039;&#039;&#039;01. Introduction&#039;&#039;&#039;, &#039;&#039;&#039;02. Basics&#039;&#039;&#039;, etc.)&lt;br /&gt;
Here, the words &amp;quot;01&amp;quot; and &amp;quot;02&amp;quot; are treated as names, and &amp;quot;introduction&amp;quot; and &amp;quot;Basics&amp;quot; are treated as extensions.&lt;br /&gt;
&lt;br /&gt;
== Conflicting order ==&lt;br /&gt;
&lt;br /&gt;
Renaming a folder also affects all of its content. Therefore renaming of folders requires a little more care.&lt;br /&gt;
&lt;br /&gt;
A problem can occur if you try to rename folders and their content in a single run. Items in the renaming list are processed from top to bottom. The order of items in this case is extremely important for successful renaming.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Parent folders must always appear below their contained items. This can be easily achieved by [[ReNamer:Sorting files|sorting items]] in descending order by the &#039;&#039;&#039;Folder&#039;&#039;&#039; or &#039;&#039;&#039;Path&#039;&#039;&#039; column.&lt;br /&gt;
&lt;br /&gt;
If a parent folder is renamed first, the actual path for its contents changes instantly, with its new name. However, the subfolders and files contained in that folder are still listed in ReNamer with their old path. As a result, ReNamer is unable to find those items at the specified location, and therefore it cannot rename them.&lt;br /&gt;
&lt;br /&gt;
For example, assume you have a folder named &amp;quot;C:\Folder&amp;quot; and a file named  &amp;quot;C:\Folder\File&amp;quot; in it.&lt;br /&gt;
Assume also that you have listed &#039;&#039;&#039;Folder&#039;&#039;&#039; above &#039;&#039;&#039;File&#039;&#039;&#039; in ReNamer.&lt;br /&gt;
As soon as first &#039;&#039;&#039;Folder&#039;&#039;&#039; is renamed to &#039;&#039;&#039;New_Folder&#039;&#039;&#039;, the path for &#039;&#039;&#039;File&#039;&#039;&#039; changes to &#039;&#039;&#039;C:\New_Folder\&#039;&#039;&#039;. However, the File is still listed in ReNAmer at its original location (with the &#039;&#039;&#039;C:\Folder\&#039;&#039;&#039; path). Thus ReNamer is unable to find &#039;&#039;&#039;File&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
In other words, while the contained folder is renamed, the contents are not.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
== Problem occurred ==&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Preview&lt;br /&gt;
! Rename&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:ReNamer Folder Rename Bad Before.png]]&lt;br /&gt;
| [[Image:ReNamer Folder Rename Bad After.png]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;| Items as they appear after they were added, no sorting.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
== Problem solved ==&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Preview&lt;br /&gt;
! Rename&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:ReNamer Folder Rename Good Before.png]]&lt;br /&gt;
| [[Image:ReNamer Folder Rename Good After.png]]&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;| Items after they were sorted in descending order by Folder column.&lt;br /&gt;
|}&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Analyze&amp;diff=2336</id>
		<title>ReNamer:Analyze</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Analyze&amp;diff=2336"/>
		<updated>2012-09-06T02:15:32Z</updated>

		<summary type="html">&lt;p&gt;Narayan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|ReNamer}}&lt;br /&gt;
&lt;br /&gt;
When you select the &#039;&#039;&#039;Analyze tool&#039;&#039;&#039; option (or press SHFT+A), ReNamer launches a window, where you can enter any arbitrary text and apply rules entered in the &#039;&#039;&#039;Rules&#039;&#039;&#039; pane.&lt;br /&gt;
&lt;br /&gt;
This is very useful to see the effect of the rules using dummy text (for example before using the &#039;&#039;&#039;Insert&#039;&#039;&#039; rule). &lt;br /&gt;
It also allows to check the positions of any character in the text just by pointing to it with keyboard or mouse. The appropriate data is displayed in the status bar of the window.&lt;br /&gt;
&lt;br /&gt;
The text may be a filename (or multiple filenames) loaded from &#039;&#039;&#039;Files&#039;&#039;&#039; pane or any text manually created by user. &lt;br /&gt;
&lt;br /&gt;
Let us see an example.&lt;br /&gt;
&lt;br /&gt;
I had already added a single [[ReNamer:Rules:Insert|Insert Rule]] in the &#039;&#039;&#039;Rules&#039;&#039;&#039; pane of ReNamer. It was set to insert &amp;quot;&#039;&#039;x&#039;&#039;&amp;quot; (without the quotes) at the 3&amp;lt;sup&amp;gt;rd&amp;lt;/sup&amp;gt; position. &lt;br /&gt;
&lt;br /&gt;
Now I press SHFT+A. &lt;br /&gt;
&lt;br /&gt;
A window pops up: &lt;br /&gt;
&lt;br /&gt;
[[Image:AnalyzeDialog.png|center]] &lt;br /&gt;
&lt;br /&gt;
In this window, I have entered some arbitrary text to show the effect of the rule. Notice how &#039;&#039;&#039;x&#039;&#039;&#039; is added at the 3&amp;lt;sup&amp;gt;rd&amp;lt;/sup&amp;gt; character in each line. &lt;br /&gt;
&lt;br /&gt;
In our example, I have moved the cursor to the 3rd position, and the status line at the bottom of the screenshot shows this position. That reassures me that the rule &#039;&#039;does&#039;&#039; insert an &#039;&#039;&#039;x&#039;&#039;&#039; at position-3. (My renaming will happen as planned.) &lt;br /&gt;
&lt;br /&gt;
Now I can close this window and go ahead and [[ReNamer:Renaming_files|rename my files]]. &lt;br /&gt;
&lt;br /&gt;
The options in the window are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Line wrap &lt;br /&gt;
| Wraps a line if it exceeds the window&#039;s width. (note that the window&#039;s width can be adjusted by dragging its right border.)&lt;br /&gt;
|-&lt;br /&gt;
! Automatically apply rules &lt;br /&gt;
| You do not have to press the [[Image:ApplyRulesButton.png]] button.&lt;br /&gt;
|-&lt;br /&gt;
! Apply rules for each line &lt;br /&gt;
| Applies the rule to each line &amp;lt;u&amp;gt;separately&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Menus_for_the_Files_pane&amp;diff=2304</id>
		<title>ReNamer:Menus for the Files pane</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Menus_for_the_Files_pane&amp;diff=2304"/>
		<updated>2012-02-19T10:17:54Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Filters menu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Cleanup|&lt;br /&gt;
* Breakdown into separate articles, one for each main section/menu&lt;br /&gt;
* Clear formatting artifacts from rich editor&lt;br /&gt;
* Update linking from other articles}}&lt;br /&gt;
&lt;br /&gt;
ReNamer has a menu bar between the &#039;&#039;&#039;Rules&#039;&#039;&#039; and &#039;&#039;&#039;Files&#039;&#039;&#039; panes [[Image:MenuStrip.png]].&lt;br /&gt;
&lt;br /&gt;
This appendix describes options available from this menu.&lt;br /&gt;
&lt;br /&gt;
== Files button ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:FilesButton.png]] button, the following list pops up: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:FileMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Analyze Name &lt;br /&gt;
| Opens [[ReNamer:Analyze|analysis window]], and loads the names of the selected files into it.&lt;br /&gt;
|-&lt;br /&gt;
| Edit New Name &#039;&#039;&#039;F2&#039;&#039;&#039; &lt;br /&gt;
| Starts manual editing of the selected filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Shell submenu|Shell]] &lt;br /&gt;
| Options for Windows shell operations.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Mark submenu|Mark]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Marking_and_Unmarking_the_files|marking]] specific items.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Clear submenu|Clear]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Marking_and_Unmarking_the_files|removing]] specific items from the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Select submenu|Select]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Selecting_files|selecting]] specific items.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Move submenu|Move]] &lt;br /&gt;
| Options for moving specific items.&lt;br /&gt;
|-&lt;br /&gt;
| Remove selected items &#039;&#039;&#039;Del&#039;&#039;&#039; &lt;br /&gt;
| Remove selected items from the ReNamer&#039;s &#039;&#039;&#039;File&#039;&#039;&#039; pane. &amp;lt;br&amp;gt;(This command does not delete the items from the disk.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This menu provides second-level options, as follows: &lt;br /&gt;
&lt;br /&gt;
=== Shell submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ShellSubMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Open File&lt;br /&gt;
| &#039;&#039;&#039;Enter&#039;&#039;&#039; &lt;br /&gt;
| Open the selected file using its default associated application.&lt;br /&gt;
|-&lt;br /&gt;
| Open with Notepad&lt;br /&gt;
| &#039;&#039;&#039;Shift+Enter&#039;&#039;&#039; &lt;br /&gt;
| Open the file with notepad. Useful when you want to see the raw data in the file. (When viewed this way, the file will not be displayed in its original formatting. It may not be easily readable.)&lt;br /&gt;
|-&lt;br /&gt;
| Open operating folder&lt;br /&gt;
| &#039;&#039;&#039;Ctrl+Enter&#039;&#039;&#039; &lt;br /&gt;
| Launch Windows Explorer and open the folder where the selected file is located. Highlight (select) the file in it.&lt;br /&gt;
|-&lt;br /&gt;
| File properties&lt;br /&gt;
| &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039; &lt;br /&gt;
| Display the properties of the selected file. Typically, file size, dates (created/modified/accessed), comments, author, attributes (hidden, system, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| Cut Files to clipboard&lt;br /&gt;
| &#039;&#039;&#039;Shift+Ctrl+X&#039;&#039;&#039; &lt;br /&gt;
| Cuts the selected file(s) to clipboard.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; If you paste these files in Windows Explorer, all files will be &amp;lt;u&amp;gt;moved&amp;lt;/u&amp;gt; to one folder, no matter where they were initially located.&lt;br /&gt;
|-&lt;br /&gt;
| Copy Files to clipboard&lt;br /&gt;
| &#039;&#039;&#039;Shift+Ctrl+C&#039;&#039;&#039; &lt;br /&gt;
| Copies selected file(s) to clipboard.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; If you paste these files in Windows Explorer, all files will be &amp;lt;u&amp;gt;copied&amp;lt;/u&amp;gt; to one folder, no matter where they were initially located.&lt;br /&gt;
|-&lt;br /&gt;
| Delete files to Recycle Bin &lt;br /&gt;
|&lt;br /&gt;
| Deletes the selected file(s) to Recycle Bin. (They can be recovered from the Recycle Bin.) &lt;br /&gt;
Note that if the file is too large for the Recycle Bin, Windows will warn you that it will not be put in Recycle Bin, but deleted permanently. If you confirm, the file is deleted permanently. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are 2 possible uses for &#039;&#039;&#039;Copy to clipboard&#039;&#039;&#039; and &#039;&#039;&#039;Cut to clipboard&#039;&#039;&#039; options:&lt;br /&gt;
* 3rd party application can retrieve that list of files from the clipboard (using Paste operation or Win API).&lt;br /&gt;
* Paste all files into a singe destination folder via Windows Explorer, even when files are scattered across different directories.&lt;br /&gt;
&lt;br /&gt;
=== Mark submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:MarkSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;&amp;lt;/u&amp;gt;&#039;&#039;&#039;: &#039;&#039;&#039;Marking of files is explained [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|here]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Mark &#039;&#039;&#039;Shift+M&#039;&#039;&#039; &lt;br /&gt;
| Mark all selected files. If some files are already marked, they remain marked.&lt;br /&gt;
|-&lt;br /&gt;
| UnMark &#039;&#039;&#039;Shift+U&#039;&#039;&#039; &lt;br /&gt;
| Unmark all selected files. If some files are already unmarked, they remain unmarked.&lt;br /&gt;
|-&lt;br /&gt;
| Invert Marking &#039;&#039;&#039;Ins&#039;&#039;&#039; &lt;br /&gt;
| Marked files become unmarked, and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
| Mark only changed&amp;lt;br&amp;gt;(Inc. Case) &lt;br /&gt;
| [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|Mark]] files that have been changed. Files that had just change of case (and nothing else) will &amp;lt;u&amp;gt;also&amp;lt;/u&amp;gt; be marked.&amp;lt;br&amp;gt;(&amp;quot;&#039;&#039;Change of case&#039;&#039;&amp;quot; means some letters are converted capital-to-small and/or small-to-capital)&lt;br /&gt;
|-&lt;br /&gt;
| Mark only changed&amp;lt;br&amp;gt;(Exc. Case) &lt;br /&gt;
| [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|Mark]] files that have been changed, but do &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; consider changes of case.&amp;lt;br&amp;gt; (&amp;quot;&#039;&#039;Change of case&#039;&#039;&amp;quot; means some letters are converted capital-to-small and/or small-to-capital)&lt;br /&gt;
|-&lt;br /&gt;
| Mark only selected &lt;br /&gt;
| Mark files that are selected. If some unselected files are already marked, they will be unmarked.&lt;br /&gt;
|-&lt;br /&gt;
| Mark by Mask &lt;br /&gt;
| Pops up a Mask window: &lt;br /&gt;
[[Image:MarkByMask.png]] &lt;br /&gt;
&lt;br /&gt;
Specify a mask pattern. All files that match this mask will be marked. &lt;br /&gt;
&lt;br /&gt;
You can enter multiple masks (separating them with semicolon). If a file matches any of these masks, it will be marked. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Clear submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ClearSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;&amp;lt;/u&amp;gt;: The term &amp;quot;&#039;&#039;Clear&#039;&#039;&amp;quot; means remove from &#039;&#039;&#039;Files&#039;&#039;&#039; pane of ReNamer.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Clear All &lt;br /&gt;
| Clear all files loaded in the pane.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Renamed &lt;br /&gt;
| Clear all files which have been renamed just before this command. Note that even if some files are not affected by the rules, they are still regarded as renamed successfully. &lt;br /&gt;
Only files that failed to rename (those with an &#039;&#039;&#039;x&#039;&#039;&#039; mark) will remain in the pane. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear Failed &lt;br /&gt;
| Only files that failed to rename (those with an &#039;&#039;&#039;x&#039;&#039;&#039; mark) will be cleared. &lt;br /&gt;
All other files (including files whose names were not altered by the rules) will remain in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear Valid &lt;br /&gt;
| Clear files that have valid names after Preview (but haven&#039;t been renamed yet).&lt;br /&gt;
|-&lt;br /&gt;
| Clear Invalid &lt;br /&gt;
| Clear files that got invalid (causing conflicts, empty or with forbidden characters etc.) names after Preview (but before renaming).&lt;br /&gt;
|-&lt;br /&gt;
| Clear Marked &lt;br /&gt;
| Clear all marked files.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Not Marked &lt;br /&gt;
| Clear all files that are not marked.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Not Changed &#039;&#039;&#039;Ctrl+D&#039;&#039;&#039; &lt;br /&gt;
| Clear all files that haven&#039;t been changed by the Preview. This also includes all files that have their New Name field empty (eg. because they have been successfully renamed or haven&#039;t been previewed since last renaming operation).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Select submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:SelectSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
Note: Selection of files is explained [[ReNamer:Adding files and folders#Selecting_files|here]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Select All&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+A&#039;&#039;&#039; &lt;br /&gt;
| All files in the pane will be selected.&lt;br /&gt;
|-&lt;br /&gt;
| Invert Selection&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+I&#039;&#039;&#039; &lt;br /&gt;
| Selected files become deselected, and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
| Select by Name Length&amp;amp;nbsp; &#039;&#039;&#039;Ctrl+L&#039;&#039;&#039; &lt;br /&gt;
| Pops up a window: &lt;br /&gt;
[[Image:SelectByFileNameLengthDialog.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the length of file name. Only files that exceed that length will be selected. &lt;br /&gt;
&lt;br /&gt;
The length refers to the whole filename including dot and the extension. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: A typical application is to check if the file can be put on a CD/DVD. The maximum length allowed in ISO 9660-compliant file-system is 64 characters. Longer file names are truncated when you burn a CD/DVD. It is difficult to correlate such files with their originals. To avoid such problems, shorten the names &#039;&#039;before&#039;&#039; burning the CD/DVD. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Select by Extension &#039;&#039;&#039;Ctrl+E&#039;&#039;&#039; &lt;br /&gt;
| Pops up a window: &lt;br /&gt;
[[Image:SelectByExtnDialog.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the extension (without the dot). All files having that extension will be selected. &lt;br /&gt;
&lt;br /&gt;
You can enter multiple extensions (they must be separated by semicolons - not comma). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Select by Mask&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+M&#039;&#039;&#039; &lt;br /&gt;
| Pops up this window: &lt;br /&gt;
[[Image:SelectByMask.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the [[ReNamer:Masks|mask]]. All files matching that pattern will be selected. &amp;lt;br&amp;gt;You can enter multiple masks (they must be separated by semicolons - not comma). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Move submenu ===&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:MoveSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Up &#039;&#039;&#039;Ctrl+Up&#039;&#039;&#039; &lt;br /&gt;
| Moves the selected file up. This is used to re-arrange files in the list. &lt;br /&gt;
It is easier to use the keyboard shortcut &#039;&#039;&#039;CTRL+UpArrow&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Down &#039;&#039;&#039;Ctrl+Down&#039;&#039;&#039; &lt;br /&gt;
| Moves the selected file down. This is used to re-arrange the files list. &lt;br /&gt;
It is easier to use the keyboard shortcut &#039;&#039;&#039;CTRL+DownArrow&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Filters menu ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:FiltersButton.png]] button, the &#039;&#039;&#039;Filters&#039;&#039;&#039; window pops up. It controls what gets added to the &#039;&#039;&#039;Files&#039;&#039;&#039; pane when you use the&amp;amp;nbsp;[[Image:AddFoldersButton.png]] button or [[ReNamer:Adding files and folders#Adding files using the Drag-and-drop method|Drag &amp;amp; Drop]] or [[ReNamer:Adding files and folders#Adding files using the copy-and-paste method |Copy &amp;amp; Paste]] methods.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:FilterSettingsDialog.png]] &lt;br /&gt;
| The options work as follows: &lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Option&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Effect&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Add files within folders &lt;br /&gt;
| When this option is selected, ReNamer scans the selected folders iteratively (including its subfolders), and loads all the files for renaming. If you want to rename only the folders (and not their contents), UNTICK this option, and select the &#039;&#039;&#039;Add folders as files&#039;&#039;&#039; checkbox.&lt;br /&gt;
|-&lt;br /&gt;
| Add folders as files &lt;br /&gt;
| If this option is selected, ReNamer treats a folder just like a file (not as a container that holds files and subfolders). So only the folder is loaded, and not the files in it. This is useful for renaming the folder itself. &lt;br /&gt;
|-&lt;br /&gt;
| Include subfolders &lt;br /&gt;
| Loads contents from all subfolders recursively. &amp;lt;br&amp;gt;If this option is unselected, when you add a folder, its subfolders will be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| Include hidden items &lt;br /&gt;
| To protect hidden items, deselect this option.&lt;br /&gt;
|-&lt;br /&gt;
| Include system items &lt;br /&gt;
| To protect files reserved for system (OS), deselect this option.&lt;br /&gt;
|-&lt;br /&gt;
| Skip root folders when added as files &lt;br /&gt;
| Works when the &#039;&#039;Add folders as files&#039;&#039; and &#039;&#039;Include subfolders&#039;&#039; options are selected. When it&#039;s on, ReNamer adds all the subfolders but not the root folder itself.&lt;br /&gt;
|-&lt;br /&gt;
| Masks &lt;br /&gt;
| All added files (or folders as files) must match specified [[ReNamer:Masks|mask(s)]]. For example, if you enter &#039;&#039;&#039;*.jpg;*.gif;*.png&#039;&#039;&#039; as masks, ReNamer will add only files with these extensions. Everything else will be filtered &#039;&#039;out&#039;&#039;(not added to ReNamer).&lt;br /&gt;
|-&lt;br /&gt;
| Apply only to the file name &lt;br /&gt;
| Changes how the masks (see above) are applied. &lt;br /&gt;
For example, suppose you have file &#039;&#039;&#039;&#039;&#039;C:\Folder\File.ext&#039;&#039;&#039;&#039;&#039;. If &#039;&#039;this&#039;&#039; option is ON, only the filename part (&#039;&#039;&#039;&#039;&#039;File.ext&#039;&#039;&#039;&#039;&#039;) will be checked against the mask(s). But if &#039;&#039;this&#039;&#039; option is OFF, the entire path (&#039;&#039;&#039;&#039;&#039;C:\Folder\File.ext&#039;&#039;&#039;&#039;&#039;) will be checked against the mask(s). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Save&#039;&#039;&#039; to save changes. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filters&#039;&#039;&#039; menu is also accessible from the &#039;&#039;&#039;Add Folder&#039;&#039;&#039; window. For details see [[ReNamer:Adding files and folders#Adding items using the &#039;Add Folders&#039; button |Adding items using the &#039;Add Folders&#039; button]] section.&lt;br /&gt;
&lt;br /&gt;
== Export menu ==&lt;br /&gt;
When you click on the [[Image:ExportButton.png]] button, the following list pops up: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ExportMenu.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Export file paths and undo paths&lt;br /&gt;
| Exports &#039;&#039;file paths&#039;&#039; and &#039;&#039;undo paths&#039;&#039; to the .csv (comma separated) or .txt (tab separated) file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Export file paths and new names&lt;br /&gt;
| Exports &#039;&#039;file paths&#039;&#039; and &#039;&#039;new names&#039;&#039; to the .csv (comma separated) or .txt (tab separated) file. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import file paths and new names&lt;br /&gt;
| Imports &#039;&#039;file paths&#039;&#039; and &#039;&#039;new names&#039;&#039; from the .csv (comma separated) or .txt (tab separated) file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import files from text-list or play-list&lt;br /&gt;
| Imports &#039;&#039;file paths&#039;&#039; from the .txt/.log file (one file per line) or .m3u/.pls playlist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; It will load file paths into &#039;&#039;&#039;Files&#039;&#039;&#039; pane only if the file really exists on your file system.&lt;br /&gt;
|-&lt;br /&gt;
| Export new names to clipboard&lt;br /&gt;
| Export &#039;&#039;new names&#039;&#039; to clipboard. One name per line.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import new names from clipboard&lt;br /&gt;
| Imports &#039;&#039;new names&#039;&#039; from clipboard. Every name should be placed in a new line.&lt;br /&gt;
&lt;br /&gt;
If there is less lines in the clipboard text than files in &#039;&#039;&#039;Files&#039;&#039;&#039; pane last files won&#039;t be renamed.&amp;lt;br&amp;gt;&lt;br /&gt;
If there is more lines in the clipboard text than files in &#039;&#039;&#039;Files&#039;&#039;&#039; pane, then last lines won&#039;t be used.&lt;br /&gt;
|-&lt;br /&gt;
| Export all columns to clipboard&lt;br /&gt;
| Exports &#039;&#039;all columns&#039;&#039; to clipboard as a tab separated text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Options menu ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:OptionsButton.png]] button, the following list pops up: &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:OptionsMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Autosize columns &lt;br /&gt;
| Auto-size all columns, to accommodate the longest entry in each column.&lt;br /&gt;
|-&lt;br /&gt;
| Validate new names &lt;br /&gt;
| Check if the new names are valid.&lt;br /&gt;
|-&lt;br /&gt;
| Fix conflicting new names &lt;br /&gt;
| Add incremental numbers as suffixes to avoid conflicts in names. For example, if a new name for a file is Name1, and if such a file already exists in the target folder, then a suffix (2) is added to the newly renamed file. If more than one files have such name conflicts, ReNamer uses incremental numbers (i.e. (2), (3)...) as suffixes to make sure that each file gets a unique name.&lt;br /&gt;
|-&lt;br /&gt;
| Highlight changed names &lt;br /&gt;
| Usually you load files only because you want to change their names. Yet, sometimes, some files escape all the rules you have loaded and remain unchanged. In such cases, you may want to know why that happened. &lt;br /&gt;
ReNamer can highlight files that are going to be changed. Now you can investigate the remaining files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;Highlight changed names&#039;&#039; option works as a switch: it turns highlighting ON and OFF.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can unmark the rules selectively and see the effect on the files. That will tell you which rules are working on which files. Once your analysis is over, you can mark all rules. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Analyze sample text &lt;br /&gt;
| It opens the [[ReNamer:Analyze|Analyze window]].&lt;br /&gt;
Thanks to that option you don&#039;t have to load files to the &#039;&#039;&#039;Files&#039;&#039;&#039; pane just to check if your rules work as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
It is extremally useful when you want to help others on the forum.&lt;br /&gt;
&lt;br /&gt;
*Enter any text that looks like your target files, and see whether the rules work as desired on that text. &lt;br /&gt;
*Edit the rules if the desired result is not achieved &lt;br /&gt;
*Once you are satisfied with the rules, apply them on the real files or post the set of rules on the forum.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Analyze sample text won&#039;t be any help if the rules base on the files properties (and not only on the filename). Analyze tool won&#039;t be able eg. to extract Meta tag from the text in its window.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Apply rules to the clipboard &lt;br /&gt;
| When you choose this option your rules will be applied to the text in clipboard instead of files in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane. This might be useful eg. when working with word processors that don&#039;t support RegEx&#039;es.&lt;br /&gt;
|-&lt;br /&gt;
| Count marked and selected files &#039;&#039;&#039;Alt + I&#039;&#039;&#039;&lt;br /&gt;
| It pops up a window like this &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Count_marked_selected.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;&#039;Total&#039;&#039;&#039; stands for total number of files loaded into the &#039;&#039;&#039;Files&#039;&#039;&#039; pane, and&lt;br /&gt;
&#039;&#039;&#039;Marked&#039;&#039;&#039; and &#039;&#039;&#039;Selected&#039;&#039;&#039; stand for number of marked and selected files respectively.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Extension&amp;diff=2303</id>
		<title>ReNamer:Rules:Extension</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Extension&amp;diff=2303"/>
		<updated>2012-02-14T02:20:08Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Extension Rule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Rearrange|next=ReNamer:Rules:Strip}}&lt;br /&gt;
&lt;br /&gt;
== Extension Rule  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ExtensionsRule.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
This rule allows you to attach a new extension. It is useful when the extension of a file is missing (or if the file has a wrong extension). There is an option to find the correct extension based on the file&#039;s structure. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| New extension &lt;br /&gt;
| New extension that has to be added to the filename. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Append to the original filename &lt;br /&gt;
| If this option is selected, the new extension will be placed after the old extension. &lt;br /&gt;
If it is deselected (default option) the new extension will replace the old one.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Detect using binary signature &lt;br /&gt;
| Sometimes the extension of a file is missing. At other times it is wrong (e.g. some downloaded files get the &#039;&#039;&#039;aspx &#039;&#039;&#039;extension, although they may &#039;&#039;actually&#039;&#039; be &#039;&#039;&#039;zip &#039;&#039;&#039;or &#039;&#039;&#039;pdf&#039;&#039;&#039; files.) &lt;br /&gt;
One way to identify the file extension is by trial-and-error: Attach different extensions and try to open the file with its associated application. This is very tedious. &lt;br /&gt;
&lt;br /&gt;
A far more efficient way is to compare the file&#039;s &#039;&#039;digital signature&#039;&#039; with the signatures of known file types and identify the file&#039;s type. This is done internally within ReNamer, so you do not have to know what a &amp;quot;digital signature&amp;quot; means, or the actual value of the signature for the given file. &lt;br /&gt;
&lt;br /&gt;
Note that each extension has a range of signatures, and these ranges overlap. &amp;lt;br&amp;gt;This means a given file&#039;s signature may match with the signature of several different extensions. &amp;lt;br&amp;gt;In such cases, ReNamer shows the New filename with all matching extensions. &amp;lt;br&amp;gt;For example, &amp;quot;fileName.wma|wmv|asf&amp;quot;. ReNamer also pops up an error window (because the combined extension is invalid). &amp;lt;br&amp;gt;Just read the suggested extensions and then try them out one by one. &amp;lt;br&amp;gt;This method is still better compared to making wild guesses, because ReNamer suggests only 2-3 extensions.&lt;br /&gt;
&lt;br /&gt;
For more accurate results, use [[ReNamer:Scripts:TrID|ReNamer with TrID script]], a specialized utility for identifying the file&#039;s real extension. &amp;lt;br&amp;gt;Be aware that even TrID often suggests multiple extensions, and you still have to try them out.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Menus_for_the_Files_pane&amp;diff=2302</id>
		<title>ReNamer:Menus for the Files pane</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Menus_for_the_Files_pane&amp;diff=2302"/>
		<updated>2012-02-14T01:56:41Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Filters menu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Cleanup|&lt;br /&gt;
* Breakdown into separate articles, one for each main section/menu&lt;br /&gt;
* Clear formatting artifacts from rich editor&lt;br /&gt;
* Update linking from other articles}}&lt;br /&gt;
&lt;br /&gt;
ReNamer has a menu bar between the &#039;&#039;&#039;Rules&#039;&#039;&#039; and &#039;&#039;&#039;Files&#039;&#039;&#039; panes [[Image:MenuStrip.png]].&lt;br /&gt;
&lt;br /&gt;
This appendix describes options available from this menu.&lt;br /&gt;
&lt;br /&gt;
== Files button ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:FilesButton.png]] button, the following list pops up: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:FileMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Analyze Name &lt;br /&gt;
| Opens [[ReNamer:Analyze|analysis window]], and loads the names of the selected files into it.&lt;br /&gt;
|-&lt;br /&gt;
| Edit New Name &#039;&#039;&#039;F2&#039;&#039;&#039; &lt;br /&gt;
| Starts manual editing of the selected filename.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Shell submenu|Shell]] &lt;br /&gt;
| Options for Windows shell operations.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Mark submenu|Mark]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Marking_and_Unmarking_the_files|marking]] specific items.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Clear submenu|Clear]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Marking_and_Unmarking_the_files|removing]] specific items from the &#039;&#039;&#039;Files&#039;&#039;&#039; pane.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Select submenu|Select]] &lt;br /&gt;
| Options for [[ReNamer:Adding_files_and_folders#Selecting_files|selecting]] specific items.&lt;br /&gt;
|-&lt;br /&gt;
| [[ReNamer:Menus for the Files pane#Move submenu|Move]] &lt;br /&gt;
| Options for moving specific items.&lt;br /&gt;
|-&lt;br /&gt;
| Remove selected items &#039;&#039;&#039;Del&#039;&#039;&#039; &lt;br /&gt;
| Remove selected items from the ReNamer&#039;s &#039;&#039;&#039;File&#039;&#039;&#039; pane. &amp;lt;br&amp;gt;(This command does not delete the items from the disk.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This menu provides second-level options, as follows: &lt;br /&gt;
&lt;br /&gt;
=== Shell submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ShellSubMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Open File&lt;br /&gt;
| &#039;&#039;&#039;Enter&#039;&#039;&#039; &lt;br /&gt;
| Open the selected file using its default associated application.&lt;br /&gt;
|-&lt;br /&gt;
| Open with Notepad&lt;br /&gt;
| &#039;&#039;&#039;Shift+Enter&#039;&#039;&#039; &lt;br /&gt;
| Open the file with notepad. Useful when you want to see the raw data in the file. (When viewed this way, the file will not be displayed in its original formatting. It may not be easily readable.)&lt;br /&gt;
|-&lt;br /&gt;
| Open operating folder&lt;br /&gt;
| &#039;&#039;&#039;Ctrl+Enter&#039;&#039;&#039; &lt;br /&gt;
| Launch Windows Explorer and open the folder where the selected file is located. Highlight (select) the file in it.&lt;br /&gt;
|-&lt;br /&gt;
| File properties&lt;br /&gt;
| &#039;&#039;&#039;Alt+Enter&#039;&#039;&#039; &lt;br /&gt;
| Display the properties of the selected file. Typically, file size, dates (created/modified/accessed), comments, author, attributes (hidden, system, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| Cut Files to clipboard&lt;br /&gt;
| &#039;&#039;&#039;Shift+Ctrl+X&#039;&#039;&#039; &lt;br /&gt;
| Cuts the selected file(s) to clipboard.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; If you paste these files in Windows Explorer, all files will be &amp;lt;u&amp;gt;moved&amp;lt;/u&amp;gt; to one folder, no matter where they were initially located.&lt;br /&gt;
|-&lt;br /&gt;
| Copy Files to clipboard&lt;br /&gt;
| &#039;&#039;&#039;Shift+Ctrl+C&#039;&#039;&#039; &lt;br /&gt;
| Copies selected file(s) to clipboard.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; If you paste these files in Windows Explorer, all files will be &amp;lt;u&amp;gt;copied&amp;lt;/u&amp;gt; to one folder, no matter where they were initially located.&lt;br /&gt;
|-&lt;br /&gt;
| Delete files to Recycle Bin &lt;br /&gt;
|&lt;br /&gt;
| Deletes the selected file(s) to Recycle Bin. (They can be recovered from the Recycle Bin.) &lt;br /&gt;
Note that if the file is too large for the Recycle Bin, Windows will warn you that it will not be put in Recycle Bin, but deleted permanently. If you confirm, the file is deleted permanently. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are 2 possible uses for &#039;&#039;&#039;Copy to clipboard&#039;&#039;&#039; and &#039;&#039;&#039;Cut to clipboard&#039;&#039;&#039; options:&lt;br /&gt;
* 3rd party application can retrieve that list of files from the clipboard (using Paste operation or Win API).&lt;br /&gt;
* Paste all files into a singe destination folder via Windows Explorer, even when files are scattered across different directories.&lt;br /&gt;
&lt;br /&gt;
=== Mark submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:MarkSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;&amp;lt;/u&amp;gt;&#039;&#039;&#039;: &#039;&#039;&#039;Marking of files is explained [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|here]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Mark &#039;&#039;&#039;Shift+M&#039;&#039;&#039; &lt;br /&gt;
| Mark all selected files. If some files are already marked, they remain marked.&lt;br /&gt;
|-&lt;br /&gt;
| UnMark &#039;&#039;&#039;Shift+U&#039;&#039;&#039; &lt;br /&gt;
| Unmark all selected files. If some files are already unmarked, they remain unmarked.&lt;br /&gt;
|-&lt;br /&gt;
| Invert Marking &#039;&#039;&#039;Ins&#039;&#039;&#039; &lt;br /&gt;
| Marked files become unmarked, and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
| Mark only changed&amp;lt;br&amp;gt;(Inc. Case) &lt;br /&gt;
| [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|Mark]] files that have been changed. Files that had just change of case (and nothing else) will &amp;lt;u&amp;gt;also&amp;lt;/u&amp;gt; be marked.&amp;lt;br&amp;gt;(&amp;quot;&#039;&#039;Change of case&#039;&#039;&amp;quot; means some letters are converted capital-to-small and/or small-to-capital)&lt;br /&gt;
|-&lt;br /&gt;
| Mark only changed&amp;lt;br&amp;gt;(Exc. Case) &lt;br /&gt;
| [[ReNamer:Adding files and folders#Marking_and_Unmarking_the_files|Mark]] files that have been changed, but do &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; consider changes of case.&amp;lt;br&amp;gt; (&amp;quot;&#039;&#039;Change of case&#039;&#039;&amp;quot; means some letters are converted capital-to-small and/or small-to-capital)&lt;br /&gt;
|-&lt;br /&gt;
| Mark only selected &lt;br /&gt;
| Mark files that are selected. If some unselected files are already marked, they will be unmarked.&lt;br /&gt;
|-&lt;br /&gt;
| Mark by Mask &lt;br /&gt;
| Pops up a Mask window: &lt;br /&gt;
[[Image:MarkByMask.png]] &lt;br /&gt;
&lt;br /&gt;
Specify a mask pattern. All files that match this mask will be marked. &lt;br /&gt;
&lt;br /&gt;
You can enter multiple masks (separating them with semicolon). If a file matches any of these masks, it will be marked. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Clear submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ClearSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;Note&#039;&#039;&#039;&amp;lt;/u&amp;gt;: The term &amp;quot;&#039;&#039;Clear&#039;&#039;&amp;quot; means remove from &#039;&#039;&#039;Files&#039;&#039;&#039; pane of ReNamer.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Clear All &lt;br /&gt;
| Clear all files loaded in the pane.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Renamed &lt;br /&gt;
| Clear all files which have been renamed just before this command. Note that even if some files are not affected by the rules, they are still regarded as renamed successfully. &lt;br /&gt;
Only files that failed to rename (those with an &#039;&#039;&#039;x&#039;&#039;&#039; mark) will remain in the pane. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear Failed &lt;br /&gt;
| Only files that failed to rename (those with an &#039;&#039;&#039;x&#039;&#039;&#039; mark) will be cleared. &lt;br /&gt;
All other files (including files whose names were not altered by the rules) will remain in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Clear Valid &lt;br /&gt;
| Clear files that have valid names after Preview (but haven&#039;t been renamed yet).&lt;br /&gt;
|-&lt;br /&gt;
| Clear Invalid &lt;br /&gt;
| Clear files that got invalid (causing conflicts, empty or with forbidden characters etc.) names after Preview (but before renaming).&lt;br /&gt;
|-&lt;br /&gt;
| Clear Marked &lt;br /&gt;
| Clear all marked files.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Not Marked &lt;br /&gt;
| Clear all files that are not marked.&lt;br /&gt;
|-&lt;br /&gt;
| Clear Not Changed &#039;&#039;&#039;Ctrl+D&#039;&#039;&#039; &lt;br /&gt;
| Clear all files that haven&#039;t been changed by the Preview. This also includes all files that have their New Name field empty (eg. because they have been successfully renamed or haven&#039;t been previewed since last renaming operation).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Select submenu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:SelectSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
Note: Selection of files is explained [[ReNamer:Adding files and folders#Selecting_files|here]].&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Select All&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+A&#039;&#039;&#039; &lt;br /&gt;
| All files in the pane will be selected.&lt;br /&gt;
|-&lt;br /&gt;
| Invert Selection&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+I&#039;&#039;&#039; &lt;br /&gt;
| Selected files become deselected, and vice versa.&lt;br /&gt;
|-&lt;br /&gt;
| Select by Name Length&amp;amp;nbsp; &#039;&#039;&#039;Ctrl+L&#039;&#039;&#039; &lt;br /&gt;
| Pops up a window: &lt;br /&gt;
[[Image:SelectByFileNameLengthDialog.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the length of file name. Only files that exceed that length will be selected. &lt;br /&gt;
&lt;br /&gt;
The length refers to the whole filename including dot and the extension. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: A typical application is to check if the file can be put on a CD/DVD. The maximum length allowed in ISO 9660-compliant file-system is 64 characters. Longer file names are truncated when you burn a CD/DVD. It is difficult to correlate such files with their originals. To avoid such problems, shorten the names &#039;&#039;before&#039;&#039; burning the CD/DVD. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Select by Extension &#039;&#039;&#039;Ctrl+E&#039;&#039;&#039; &lt;br /&gt;
| Pops up a window: &lt;br /&gt;
[[Image:SelectByExtnDialog.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the extension (without the dot). All files having that extension will be selected. &lt;br /&gt;
&lt;br /&gt;
You can enter multiple extensions (they must be separated by semicolons - not comma). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Select by Mask&#039;&#039;&#039;&amp;amp;nbsp; Ctrl+M&#039;&#039;&#039; &lt;br /&gt;
| Pops up this window: &lt;br /&gt;
[[Image:SelectByMask.png]] &lt;br /&gt;
&lt;br /&gt;
Specify the [[ReNamer:Masks|mask]]. All files matching that pattern will be selected. &amp;lt;br&amp;gt;You can enter multiple masks (they must be separated by semicolons - not comma). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Move submenu ===&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:MoveSubmenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Up &#039;&#039;&#039;Ctrl+Up&#039;&#039;&#039; &lt;br /&gt;
| Moves the selected file up. This is used to re-arrange files in the list. &lt;br /&gt;
It is easier to use the keyboard shortcut &#039;&#039;&#039;CTRL+UpArrow&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Down &#039;&#039;&#039;Ctrl+Down&#039;&#039;&#039; &lt;br /&gt;
| Moves the selected file down. This is used to re-arrange the files list. &lt;br /&gt;
It is easier to use the keyboard shortcut &#039;&#039;&#039;CTRL+DownArrow&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Filters menu ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:FiltersButton.png]] button, the &#039;&#039;&#039;Filters&#039;&#039;&#039; window pops up. It controls what gets added to the &#039;&#039;&#039;Files&#039;&#039;&#039; pane when you use the&amp;amp;nbsp;[[Image:AddFoldersButton.png]] button or [[ReNamer:Adding files and folders#Adding files using the Drag-and-drop method|Drag &amp;amp; Drop]] or [[ReNamer:Adding files and folders#Adding files using the copy-and-paste method |Copy &amp;amp; Paste]] methods.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:FilterSettingsDialog.png]] &lt;br /&gt;
| The options work as follows: &lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Option&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Effect&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Add files within folders &lt;br /&gt;
| When this option is selected, ReNamer scans the selected folders iteratively (including its subfolders), and loads all the files for renaming. If you want to rename only the folders (and not their contents), UNTICK this option.&lt;br /&gt;
|-&lt;br /&gt;
| Add folders as files &lt;br /&gt;
| If this option is selected, ReNamer treats folder just like a file (not as a container that holds files and subfolders). So only the folder is loaded, and not the files in it. This is useful for renaming the folder itself. &lt;br /&gt;
|-&lt;br /&gt;
| Include subfolders &lt;br /&gt;
| Loads contents from all subfolders recursively.&lt;br /&gt;
|-&lt;br /&gt;
| Include hidden items &lt;br /&gt;
| To protect hidden items, deselect this option.&lt;br /&gt;
|-&lt;br /&gt;
| Include system items &lt;br /&gt;
| To protect files reserved for system (OS), deselect this option.&lt;br /&gt;
|-&lt;br /&gt;
| Skip root folders when added as files &lt;br /&gt;
| Works when the &#039;&#039;Add folders as files&#039;&#039; and &#039;&#039;Include subfolders&#039;&#039; options are selected. When it&#039;s on, ReNamer adds all the subfolders but not the root folder itself.&lt;br /&gt;
|-&lt;br /&gt;
| Masks &lt;br /&gt;
| All added files (or folders as files) must match specified [[ReNamer:Masks|mask(s)]]. For example, if you enter &#039;&#039;&#039;*.jpg;*.gif;*.png&#039;&#039;&#039; as masks, ReNamer will add only files with these extensions. Everything else will be filtered &#039;&#039;out&#039;&#039;(not added to ReNamer).&lt;br /&gt;
|-&lt;br /&gt;
| Apply only to the file name &lt;br /&gt;
| Changes how the masks (see above) are applied. &lt;br /&gt;
For example, suppose you have file &#039;&#039;&#039;&#039;&#039;C:\Folder\File.ext&#039;&#039;&#039;&#039;&#039;. If &#039;&#039;this&#039;&#039; option is ON, only the filename part (&#039;&#039;&#039;&#039;&#039;File.ext&#039;&#039;&#039;&#039;&#039;) will be checked against the mask(s). But if &#039;&#039;this&#039;&#039; option is OFF, the entire path (&#039;&#039;&#039;&#039;&#039;C:\Folder\File.ext&#039;&#039;&#039;&#039;&#039;) will be checked against the mask(s). &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;&#039;Save&#039;&#039;&#039; to save changes. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filters&#039;&#039;&#039; menu is also accessible from the &#039;&#039;&#039;Add Folder&#039;&#039;&#039; window. For details see [[ReNamer:Adding files and folders#Adding items using the &#039;Add Folders&#039; button |Adding items using the &#039;Add Folders&#039; button]] section.&lt;br /&gt;
&lt;br /&gt;
== Export menu ==&lt;br /&gt;
When you click on the [[Image:ExportButton.png]] button, the following list pops up: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:ExportMenu.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| Export file paths and undo paths&lt;br /&gt;
| Exports &#039;&#039;file paths&#039;&#039; and &#039;&#039;undo paths&#039;&#039; to the .csv (comma separated) or .txt (tab separated) file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Export file paths and new names&lt;br /&gt;
| Exports &#039;&#039;file paths&#039;&#039; and &#039;&#039;new names&#039;&#039; to the .csv (comma separated) or .txt (tab separated) file. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import file paths and new names&lt;br /&gt;
| Imports &#039;&#039;file paths&#039;&#039; and &#039;&#039;new names&#039;&#039; from the .csv (comma separated) or .txt (tab separated) file.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import files from text-list or play-list&lt;br /&gt;
| Imports &#039;&#039;file paths&#039;&#039; from the .txt/.log file (one file per line) or .m3u/.pls playlist.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; It will load file paths into &#039;&#039;&#039;Files&#039;&#039;&#039; pane only if the file really exists on your file system.&lt;br /&gt;
|-&lt;br /&gt;
| Export new names to clipboard&lt;br /&gt;
| Export &#039;&#039;new names&#039;&#039; to clipboard. One name per line.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Import new names from clipboard&lt;br /&gt;
| Imports &#039;&#039;new names&#039;&#039; from clipboard. Every name should be placed in a new line.&lt;br /&gt;
&lt;br /&gt;
If there is less lines in the clipboard text than files in &#039;&#039;&#039;Files&#039;&#039;&#039; pane last files won&#039;t be renamed.&amp;lt;br&amp;gt;&lt;br /&gt;
If there is more lines in the clipboard text than files in &#039;&#039;&#039;Files&#039;&#039;&#039; pane, then last lines won&#039;t be used.&lt;br /&gt;
|-&lt;br /&gt;
| Export all columns to clipboard&lt;br /&gt;
| Exports &#039;&#039;all columns&#039;&#039; to clipboard as a tab separated text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Options menu ==&lt;br /&gt;
&lt;br /&gt;
When you click on the [[Image:OptionsButton.png]] button, the following list pops up: &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:OptionsMenu.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Autosize columns &lt;br /&gt;
| Auto-size all columns, to accommodate the longest entry in each column.&lt;br /&gt;
|-&lt;br /&gt;
| Validate new names &lt;br /&gt;
| Check if the new names are valid.&lt;br /&gt;
|-&lt;br /&gt;
| Fix conflicting new names &lt;br /&gt;
| Add incremental numbers as suffixes to avoid conflicts in names. For example, if a new name for a file is Name1, and if such a file already exists in the target folder, then a suffix (2) is added to the newly renamed file. If more than one files have such name conflicts, ReNamer uses incremental numbers (i.e. (2), (3)...) as suffixes to make sure that each file gets a unique name.&lt;br /&gt;
|-&lt;br /&gt;
| Highlight changed names &lt;br /&gt;
| Usually you load files only because you want to change their names. Yet, sometimes, some files escape all the rules you have loaded and remain unchanged. In such cases, you may want to know why that happened. &lt;br /&gt;
ReNamer can highlight files that are going to be changed. Now you can investigate the remaining files.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &#039;&#039;Highlight changed names&#039;&#039; option works as a switch: it turns highlighting ON and OFF.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You can unmark the rules selectively and see the effect on the files. That will tell you which rules are working on which files. Once your analysis is over, you can mark all rules. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Analyze sample text &lt;br /&gt;
| It opens the [[ReNamer:Analyze|Analyze window]].&lt;br /&gt;
Thanks to that option you don&#039;t have to load files to the &#039;&#039;&#039;Files&#039;&#039;&#039; pane just to check if your rules work as desired.&amp;lt;br&amp;gt;&lt;br /&gt;
It is extremally useful when you want to help others on the forum.&lt;br /&gt;
&lt;br /&gt;
*Enter any text that looks like your target files, and see whether the rules work as desired on that text. &lt;br /&gt;
*Edit the rules if the desired result is not achieved &lt;br /&gt;
*Once you are satisfied with the rules, apply them on the real files or post the set of rules on the forum.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Analyze sample text won&#039;t be any help if the rules base on the files properties (and not only on the filename). Analyze tool won&#039;t be able eg. to extract Meta tag from the text in its window.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Apply rules to the clipboard &lt;br /&gt;
| When you choose this option your rules will be applied to the text in clipboard instead of files in the &#039;&#039;&#039;Files&#039;&#039;&#039; pane. This might be useful eg. when working with word processors that don&#039;t support RegEx&#039;es.&lt;br /&gt;
|-&lt;br /&gt;
| Count marked and selected files &#039;&#039;&#039;Alt + I&#039;&#039;&#039;&lt;br /&gt;
| It pops up a window like this &lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Count_marked_selected.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;&#039;Total&#039;&#039;&#039; stands for total number of files loaded into the &#039;&#039;&#039;Files&#039;&#039;&#039; pane, and&lt;br /&gt;
&#039;&#039;&#039;Marked&#039;&#039;&#039; and &#039;&#039;&#039;Selected&#039;&#039;&#039; stand for number of marked and selected files respectively.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Adding_files_and_folders&amp;diff=2301</id>
		<title>ReNamer:Adding files and folders</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Adding_files_and_folders&amp;diff=2301"/>
		<updated>2012-02-14T01:50:28Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Adding items using the &amp;#039;Add Folders&amp;#039; button */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Step-by-step|next=ReNamer:Managing rules}}&lt;br /&gt;
&lt;br /&gt;
In this section, we will see how to place files and folders in ReNamer&#039;s working area (also called the &#039;&#039;&#039;Files pane&#039;&#039;&#039;). &amp;lt;br&amp;gt;This consists of:&lt;br /&gt;
&lt;br /&gt;
#Adding files and folders, &lt;br /&gt;
#Removing some files from the pane, and &lt;br /&gt;
#Changing the order of files in the pane.&lt;br /&gt;
&lt;br /&gt;
ReNamer has multiple methods for these actions, as described below &lt;br /&gt;
&lt;br /&gt;
=== Adding files using the &#039;Add Files&#039; button  ===&lt;br /&gt;
&lt;br /&gt;
#Press the [[Image:AddFilesButton.png]] button. The following window pops up: &lt;br /&gt;
#:&amp;lt;center&amp;gt;[[Image:ReNamer Open Dialog.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
#Navigate to the required folder and [[ReNamer:Adding files and folders#Selecting_files|select]] files. &lt;br /&gt;
#Press &#039;&#039;&#039;OK. &#039;&#039;&#039;The selected files are added to ReNamer&#039;s &#039;&#039;&#039;Files pane&#039;&#039;&#039;. &lt;br /&gt;
#Repeat steps 1-3 to load files from other folders (as required).&lt;br /&gt;
&lt;br /&gt;
=== Adding items using the &#039;Add Folders&#039; button  ===&lt;br /&gt;
&lt;br /&gt;
#To add all the files belonging to a folder, press the [[Image:AddFoldersButton.png]] button. &lt;br /&gt;
#:The following window pops up: &lt;br /&gt;
#:&amp;lt;center&amp;gt;[[Image:ReNamer Browse Dialog.png]]&amp;lt;/center&amp;gt; &lt;br /&gt;
#:*When you select a node in the tree, all its sub-nodes are automatically selected.&amp;lt;br&amp;gt;In other words, when you select a folder, its subfolders are automatically selected.&lt;br /&gt;
#:*By default, ReNamer adds all files from a folder, but &#039;&#039;not&#039;&#039; the folder itself. &amp;lt;br&amp;gt;So if you want to rename the folder itself (and not its contents), then select this option using the [[ReNamer:Menus for the Files pane#Filters_menu|&#039;&#039;&#039;Filters&#039;&#039;&#039;]].&lt;br /&gt;
#:*You can select any node from the tree. That means you can even select any/all drives on your computer! &lt;br /&gt;
#:*You can select multiple nodes at a time, by pressing &#039;&#039;&#039;CTRL&#039;&#039;&#039; first and then cliking on different nodes of the tree. All those nodes will be added at one stroke. &lt;br /&gt;
#If you want to add only certain items from the selected folder, set ReNamer&#039;s [[ReNamer:Menus for the Files pane#Filters_menu|&#039;&#039;&#039;Filters&#039;&#039;&#039;]] by clicking on the [[Image:FilterSettingsButton.png]] button and then selecting different options. Depending on your selected options in this window, the &#039;&#039;&#039;Add folders&#039;&#039;&#039; window will add different items to ReNamer&#039;s &#039;&#039;&#039;Files pane&#039;&#039;&#039;. &lt;br /&gt;
#*You can also set the filters by clicking the [[Image:FiltersButton.png]] button (located above the &#039;&#039;&#039;Files pane&#039;&#039;&#039;) &lt;br /&gt;
#Navigate to the desired folder and press the [[Image:AddFolderButton.png]]&amp;amp;nbsp; button.&lt;br /&gt;
&lt;br /&gt;
=== Adding files using the Drag-and-drop method  ===&lt;br /&gt;
&lt;br /&gt;
Select the files in any application and drag-and-drop them into ReNamer&#039;s &#039;&#039;&#039;Files pane&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
*To drag-and-drop, click on your file selection with LMB. Without releasing the LMB, start moving the mouse. Now bring the mouse pointer over the ReNamer&#039;s &#039;&#039;&#039;Files pane&#039;&#039;&#039;, and then release the LMB. &lt;br /&gt;
**If the ReNamer&#039;s window is not visible, first drag your selection onto ReNamer&#039;s task button [[Image:ReNamerTaskbarButton.png]] in Windows &#039;&#039;&#039;Task&#039;&#039;&#039; toolbar (located at the bottom of your screen). Wait for a couple of seconds without releasing the LMB. The ReNamer window pops up, and &#039;&#039;stays above the other applications&#039; windows&#039;&#039; on your screen. Now you can move your mouse over the ReNamer window and drop your selection in its &#039;&#039;&#039;Files pane&#039;&#039;&#039;. &lt;br /&gt;
**You can also use the ReNamer&#039;s [[ReNamer:Program settings#General_settings|&#039;&#039;&#039;General settings&#039;&#039;&#039;]] to keep its window above the other windows, so even when you are working in the other applications, the ReNamer window stays on top of the other applications&#039; windows.&lt;br /&gt;
&lt;br /&gt;
=== Adding files using the copy-and-paste method  ===&lt;br /&gt;
&lt;br /&gt;
Select the files in any application and press &#039;&#039;&#039;CTRL+C&#039;&#039;&#039; to copy them into the clipboard. Now switch to ReNamer and press &#039;&#039;&#039;SHIFT+CTRL+V&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Note that: &lt;br /&gt;
&lt;br /&gt;
*Renamer does not use the usual keyboard shortcut &#039;&#039;&#039;CTRL+V&#039;&#039;&#039;. &lt;br /&gt;
*It is not necessary to click inside the &#039;&#039;&#039;Files&#039;&#039;&#039; pane for the &#039;&#039;paste&#039;&#039; operation.&lt;br /&gt;
&lt;br /&gt;
=== Removing files or folders from pane  ===&lt;br /&gt;
&lt;br /&gt;
If you have added more files by mistake, you can remove them easily in just two steps: &lt;br /&gt;
&lt;br /&gt;
#[[ReNamer:Adding files and folders#Selecting_files|Select]] the items &lt;br /&gt;
#Press the &#039;&#039;&#039;DEL&#039;&#039;&#039; key. (This only removes the files/folders from the ReNamer. It does not delete them from the disk!)&lt;br /&gt;
&lt;br /&gt;
=== Changing the order of the files in the pane  ===&lt;br /&gt;
&lt;br /&gt;
Certain rules (e.g. the [[ReNamer:Rules:Serialize|Serialize Rule]]) act on the list of the files in &amp;quot;from-top-to-bottom&amp;quot; order (as opposed to acting on each file independently). In such cases, each file gets its name based on its position in the list. (For example, the &#039;&#039;n&#039;&#039;th file in the list is named Track-n.mp3.) &lt;br /&gt;
&lt;br /&gt;
Normally, the files are listed in the order you added them to the pane (the most recently added file goes to the bottom of the list). But you can change the position of the files in the list. &lt;br /&gt;
&lt;br /&gt;
Just click on the file and drag it to the new position. &lt;br /&gt;
&lt;br /&gt;
*You can [[ReNamer:Adding files and folders#Selecting_files|select]] multiple files and drag all of them &#039;&#039;as a group&#039;&#039; to the new position.&lt;br /&gt;
&lt;br /&gt;
=== Sorting files in the files pane ===&lt;br /&gt;
&lt;br /&gt;
You can also sort files in the &#039;&#039;&#039;Files pane&#039;&#039;&#039; by any column with just a click on the column title. The little triangle will show up to indicate the order of sorting. For more information have a look at the full article on [[ReNamer:Sorting files|sorting files]].&lt;br /&gt;
&lt;br /&gt;
=== Selecting files  ===&lt;br /&gt;
&lt;br /&gt;
When a file is selected, its entire row is highlighted with blue background. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Selected file &lt;br /&gt;
| [[Image:SelectedFile.png]]&lt;br /&gt;
|-&lt;br /&gt;
| Unselected file &lt;br /&gt;
| [[Image:UnselectedFile.png]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ReNamer allows you to carry out specific operations on selected files. &lt;br /&gt;
&lt;br /&gt;
You can select one or more files by the following methods: &lt;br /&gt;
&lt;br /&gt;
#Click anywhere in the row except on the check box. &lt;br /&gt;
#*To select non-adjacent files, press &#039;&#039;&#039;CTRL&#039;&#039;&#039; and then click on individual rows. &lt;br /&gt;
#*To select files listed in adjacent rows, first click on the row at one end, then keep the &#039;&#039;&#039;SHFT&#039;&#039;&#039; pressed down, and click on the row at the other end. &lt;br /&gt;
#Draw a lasso (rectangle) with the mouse in the &#039;&#039;&#039;Files pane&#039;&#039;&#039;. All the rows touched by the rectangle are selected. &lt;br /&gt;
#*If you repeat these actions on an item, they toggle the selection status (selected-unselected).&lt;br /&gt;
&lt;br /&gt;
When only one row is selected, use Up/Down arrow keys to change the selection to another row. &lt;br /&gt;
&lt;br /&gt;
=== Marking and Unmarking the files  ===&lt;br /&gt;
&lt;br /&gt;
A file is marked by putting a tick in its check box [[Image:CheckedCheckbox.png]]. Conversely, it is unmarked by removing the tick [[Image:UncheckedCheckbox.png]]. &lt;br /&gt;
&lt;br /&gt;
ReNamer acts only on the &#039;&#039;marked&#039;&#039; files. An &#039;&#039;unmarked&#039;&#039; file is neither previewed nor renamed. &lt;br /&gt;
&lt;br /&gt;
So unmarking a file is useful to exempt a file from renaming, &#039;&#039;without&#039;&#039; having to remove it from the &#039;&#039;&#039;Files pane&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
To mark/unmark the files: &lt;br /&gt;
&lt;br /&gt;
#Click on the check box. &lt;br /&gt;
#Select the files and press the &#039;&#039;&#039;Spacebar&#039;&#039;&#039; (on keyboard)&lt;br /&gt;
&lt;br /&gt;
(Repeat of these actions on any item toggles its &#039;&#039;marked&#039;&#039;/&#039;&#039;unmarked&#039;&#039; status.) &lt;br /&gt;
&lt;br /&gt;
Note that the &#039;&#039;marked&#039;&#039;/&#039;&#039;unmarked&#039;&#039; status of a file has no relation with its &#039;&#039;selected&#039;&#039;/&#039;&#039;unselected&#039;&#039; status.&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Regular_Expressions&amp;diff=2159</id>
		<title>ReNamer:Regular Expressions</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Regular_Expressions&amp;diff=2159"/>
		<updated>2011-02-23T03:00:58Z</updated>

		<summary type="html">&lt;p&gt;Narayan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Cleanup|&lt;br /&gt;
* Replace all span color highlights with custom &#039;&#039;&#039;hl-*&#039;&#039;&#039; classes found in [[MediaWiki:Common.css]].(krtek: probably already done)&lt;br /&gt;
* Replace all &#039;&#039;&#039;&amp;quot;&amp;quot;&#039;&#039;&#039; (0x201C and 0x201D) quotes with normal &#039;&#039;&#039;&amp;quot;&amp;quot;&#039;&#039;&#039; (0x22). (krtek: probably already done)&lt;br /&gt;
* Get rid of not needed &amp;lt;nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt; wiki style bold around span &#039;&#039;&#039;hl-*&#039;&#039;&#039; classes, which are bold by definition (den4b: 40% done)&lt;br /&gt;
* Check for italized &amp;quot; (quotes) and make them normal. Especially ending quotes got italized or bolded.&lt;br /&gt;
* }}&lt;br /&gt;
&lt;br /&gt;
Regular Expressions (RegEx) allow you to use precise search conditions, such as:&lt;br /&gt;
&lt;br /&gt;
*Your search string &#039;&#039;must&#039;&#039; be located at the beginning (or at the end) of a line, &lt;br /&gt;
*The specified text must occur &#039;&#039;n&#039;&#039; times, etc.&lt;br /&gt;
&lt;br /&gt;
RegEx expressions use &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$ . ^ { [ ( | ) * + ? \&amp;lt;/span&amp;gt; characters (called &#039;&#039;metacharacters&#039;&#039;) in various combinations to specify all these conditions.The search engine &#039;&#039;interprets&#039;&#039; these metacharacters, rather than finding a literal match for them. &lt;br /&gt;
&lt;br /&gt;
The RegEx search expression is called a &amp;quot;&#039;&#039;&#039;&#039;&#039;RegEx pattern&amp;quot;&#039;&#039;&#039;&#039;&#039;, because a single expression can match a large number of actual text that has the specified &#039;&#039;pattern.&#039;&#039; For example, the RegEx pattern &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;b?t&amp;lt;/span&amp;gt; matches with &#039;&#039;&#039;bat&#039;&#039;&#039;, &#039;&#039;&#039;bet&#039;&#039;&#039;, &#039;&#039;&#039;bit&#039;&#039;&#039;, &#039;&#039;&#039;bot&#039;&#039;&#039; and &#039;&#039;&#039;but&#039;&#039;&#039;, etc. &lt;br /&gt;
&lt;br /&gt;
Remember that RegEx strings are case-sensitive (The words &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;cat&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;CAT&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;cAt&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;Cat&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;caT&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;cAT&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;CAt&amp;lt;/span&amp;gt; and &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;CaT&amp;lt;/span&amp;gt; are not equivalent).&lt;br /&gt;
&lt;br /&gt;
So our RegEx pattern &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;b?t&amp;lt;/span&amp;gt; also matches  with &#039;&#039;&#039;bAt&#039;&#039;&#039;, &#039;&#039;&#039;bEt&#039;&#039;&#039;, &#039;&#039;&#039;bIt&#039;&#039;&#039;, &#039;&#039;&#039;bOt&#039;&#039;&#039; and &#039;&#039;&#039;bUt&#039;&#039;&#039;, etc.  &lt;br /&gt;
&lt;br /&gt;
Also, note that even the digits (&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;-&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;9&amp;lt;/span&amp;gt;) are &amp;quot;numeric characters&amp;quot; for RegEx.&lt;br /&gt;
&lt;br /&gt;
So our RegEx pattern &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;b?t&amp;lt;/span&amp;gt; also matches  with &#039;&#039;&#039;b5t&#039;&#039;&#039;, &#039;&#039;&#039;b7t&#039;&#039;&#039;, etc.  &lt;br /&gt;
&lt;br /&gt;
In this section, the RegEx expressions (patterns) are shown in &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;bold orange&amp;lt;/span&amp;gt;. The target strings (which are compared with the RegEx expression for a possible match) are shown in &#039;&#039;&#039;bold black&#039;&#039;&#039;. A part of the target text is color-coded to provide a clue as to why a certain part matches (&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt; color), or does &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; match (&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;red&amp;lt;/span&amp;gt; color) &lt;br /&gt;
&lt;br /&gt;
=== Simple (literal) matches  ===&lt;br /&gt;
&lt;br /&gt;
When the search string does not contain any metacharacters, the RegEx engine works like &amp;quot;normal&amp;quot; search. (it tries to find an exact copy of the search string.) (This is also known as &amp;quot;literal match&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
If you want to find a literal match for a metacharacter, put a backslash &#039;&#039;&#039;\&#039;&#039;&#039; &#039;&#039;before&#039;&#039; it. (The &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\&amp;lt;/span&amp;gt; character is called &amp;quot;&#039;&#039;escape character&#039;&#039;&amp;quot;, because it lets the metacharacter escape from its special duty, and lets it act as a normal character. Its combination with a metacharacter is called &amp;quot;&#039;&#039;escape sequence&#039;&#039;&amp;quot;). &lt;br /&gt;
&lt;br /&gt;
For example, metacharacter &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;^&amp;lt;/span&amp;gt; matches the beginning of string, but &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\^&amp;lt;/span&amp;gt; matches the character &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;^&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Note that the RegEx pattern &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\\&amp;lt;/span&amp;gt; matches the character &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;\&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx pattern&lt;br /&gt;
! Matches&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foobar&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;foobar&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| This RegEx pattern does not contain any metacharacters; so all characters are matched literally.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\^FooBarPtr&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;^FooBarPtr&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
| The &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\^&amp;lt;/span&amp;gt; escape sequence searches for the character &#039;&#039;&#039;^&#039;&#039;&#039; &#039;&#039;literally&#039;&#039; .&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Escape sequences  ===&lt;br /&gt;
&lt;br /&gt;
We already saw one use of escape sequence (above). &lt;br /&gt;
&lt;br /&gt;
Specific escape sequences are interpreted as special conditions, as listed below. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx pattern&lt;br /&gt;
! matches&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\xnn&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Character represented by the hex code &#039;&#039;nn&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\x{nnnn}&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| two bytes char with hex code nnnn (unicode)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\t&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| tab (HT/TAB), same as \x09 (Hex 09)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\n&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| new line (NL), same as \x0a (Hex 0a)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| carriage return (CR), same as \x0d (Hex 0d)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\f&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| form feed (FF), same as \x0c (Hex 0c)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foo\x20bar&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;foo bar&amp;lt;/span&amp;gt; (note the space in the middle), but does &#039;&#039;not&#039;&#039; match &#039;&#039;&#039;foobar&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\tfoobar&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;foobar&amp;lt;/span&amp;gt; preceded by a tab (the tab is needed for the match)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the tab, new line, carriage return, and form feed are known as &amp;quot;white spaces&amp;quot;. But RegEx can distinguish between them. This allows you to make high-precision searches. &lt;br /&gt;
&lt;br /&gt;
=== Character Classes  ===&lt;br /&gt;
&lt;br /&gt;
A character class is a list of characters in square brackets &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[]&amp;lt;/span&amp;gt;, which will match any one (and &#039;&#039;only one&#039;&#039;-) character from the list. &lt;br /&gt;
&lt;br /&gt;
Note that:&lt;br /&gt;
&lt;br /&gt;
* The characters are not separated with a comma or a space. &lt;br /&gt;
* If you repeat any character in the list, it is considered only once (duplicates are ignored). &lt;br /&gt;
* A hyphen &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt; is used to indicate range of characters.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[abdef]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;d&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;, or &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;f&amp;lt;/span&amp;gt; (only &#039;&#039;one&#039;&#039; character), but no other characters&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[c-m]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches any one (and only one) of the small alphabetical characters, from &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt; to &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;m&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[G-J]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches any one (and only one) of the capital alphabetical characters from &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt; to &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;J&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[a-zA-Z]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches any one (and only one) of the alphabetical characters (capital or small)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[5-8]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches any one (and only one) of numerical characters from &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;5&amp;lt;/span&amp;gt; to &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;8&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[\n-\x0D]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
Matches any one (and only one) of &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;#10&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;#11&amp;lt;/span&amp;gt;, &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;#12&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;#13&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;(Note the use of [[ReNamer:Regular Expressions#Simple_.28literal.29_matches|escape sequence]] inside a class) &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
There are some special conditions: &lt;br /&gt;
&lt;br /&gt;
*If you do not want any of the characters in the specified class, then place &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;^&amp;lt;/span&amp;gt; at the very beginning of the list (RegEx interprets that as &amp;quot;none of the characters listed in this class&amp;quot;). &lt;br /&gt;
*If you want &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt; itself to be a member of a class, put it at the start or end of the list, or create a [[ReNamer:Regular Expressions#Simple_.28literal.29_matches|escape sequence]] (by putting &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\&amp;lt;/span&amp;gt; before it).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[-az]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;&#039;&#039;,&#039;&#039;&#039;&#039;&#039;&amp;lt;i&amp;gt;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;z&amp;lt;/span&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;/i&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&#039;&#039;&#039;(since &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;–&amp;lt;/span&amp;gt;&#039;&#039;&#039; is put at the beginning, the escape sequence is not needed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[a\-z]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;&#039;&#039;,&#039;&#039;&#039;&#039;&#039;&amp;lt;i&amp;gt;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;z&amp;lt;/span&amp;gt;&#039;&#039;&#039;, and &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;/i&amp;gt;&#039;&#039;&#039;&amp;amp;nbsp;&#039;&#039;&#039; &amp;lt;br&amp;gt;(since &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;–&amp;lt;/span&amp;gt;&#039;&#039;&#039; is &#039;&#039;not&#039;&#039; at the beginning/end, the escape sequence &#039;&#039;is&#039;&#039; needed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[^0-9]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches any &#039;&#039;non-digit&#039;&#039; character&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[]-a]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches any character from &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;&#039;&#039;&#039; to &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;&#039;&#039;&#039;. &amp;lt;br&amp;gt;(since &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt; &#039;&#039;&#039;is at the beginning, the escape sequence &#039;&#039;is&#039;&#039; &#039;&#039;not&#039;&#039; needed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob[aeiou]r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches with &#039;&#039;&#039;foob&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;r,&#039;&#039;&#039; etc. but not &#039;&#039;&#039;foob&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;r&#039;&#039;&#039;, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob[^aeiou]r&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches with &#039;&#039;&#039;foob&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;r&#039;&#039;&#039; etc. but not &#039;&#039;&#039;foob&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&#039;&#039;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;e&amp;lt;/span&amp;gt;&#039;&#039;&#039;&#039;&#039;r&#039;&#039;&#039;, etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
@@@ The &amp;quot;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;]-a&amp;lt;/span&amp;gt;&amp;quot; example would need a clarification as to what is the natural sequence of characters, and where is a superset of all possible characters described?&lt;br /&gt;
&lt;br /&gt;
=== Predefined Classes  ===&lt;br /&gt;
&lt;br /&gt;
Some of the character classes are used so often that RegEx has predefined escape sequences to represent them. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\w&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| an alphanumeric character, including an &#039;&#039;underscore&#039;&#039; (&#039;&#039;&#039;_&#039;&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\W&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| a non-alphanumeric character&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\d&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| a numeric character&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\D&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| a non-numeric character&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\s&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| any space (same as the &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[ \t\n\r\f]&amp;lt;/span&amp;gt; class)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\S&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| a non space&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| any character in line (the symbol is just a dot)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notice that the capitalized letter is used to negate (for example, compare &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\w&amp;lt;/span&amp;gt; with &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\W&amp;lt;/span&amp;gt;) &lt;br /&gt;
&lt;br /&gt;
=== Word/Text Boundaries  ===&lt;br /&gt;
&lt;br /&gt;
A word boundary (&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\b&amp;lt;/span&amp;gt;) is a spot between two characters that has a &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\w&amp;lt;/span&amp;gt; on one side of it and a &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\W&amp;lt;/span&amp;gt; on the other side of it (in either order), counting the imaginary characters off the beginning and end of the string as matching a &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\W&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\b&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| word boundary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\B&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| not word boundary&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\A&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| start of text (&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;^&amp;lt;/span&amp;gt; is an alternative)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\Z&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| end of text (&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; is an alternative)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These markers are combined with the search string to specify where exactly you want the search string to be. For example, &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\bhis\b&amp;lt;/span&amp;gt; will search for a whole word &#039;&#039;&#039;his&#039;&#039;&#039;, but will ignore &amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;t&amp;lt;/span&amp;gt;&#039;&#039;&#039;his&#039;&#039;&#039;, &#039;&#039;&#039;his&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;tory&amp;lt;/span&amp;gt; or &amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;w&amp;lt;/span&amp;gt;his&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;tle&amp;lt;/span&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== Iterators (Quantifiers)  ===&lt;br /&gt;
&lt;br /&gt;
Iterators (quantifiers) are meta-characters that specify how many times the &#039;&#039;preceding&#039;&#039; expression has to repeat, A typical example is to find a 3-to-5 digit number. &lt;br /&gt;
&lt;br /&gt;
RegEx newbies often place the iterators &#039;&#039;after&#039;&#039; the character that needs to repeat. Just remember that RegEx syntax is exact opposite of the usual English syntax. So, instead of &amp;quot;&#039;&#039;four dogs&#039;&#039;&amp;quot;, we would have to say &amp;quot;&#039;&#039;dogs four&#039;&#039;&amp;quot;, RegEx-style. &lt;br /&gt;
&lt;br /&gt;
Iterators can be &#039;Greedy&#039; or &#039;Non-Greedy&#039;. Greedy means the expression grabs as &#039;&#039;much&#039;&#039; matching text as possible. In contrast, the non-greedy expression tries to match as &#039;&#039;little&#039;&#039; as possible. &lt;br /&gt;
&lt;br /&gt;
For example, &lt;br /&gt;
&lt;br /&gt;
*when &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;b+&amp;lt;/span&amp;gt;&#039;&#039;&#039; (a greedy expression) is applied to string &#039;&#039;&#039;abbbbc&#039;&#039;&#039;, it returns &#039;&#039;&#039;bbbb&#039;&#039;&#039;, &lt;br /&gt;
*but when &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;b+?&amp;lt;/span&amp;gt; &#039;&#039;&#039;(a non-greedy expression) is applied to &#039;&#039;&#039;abbbbc&#039;&#039;&#039;, it returns only &#039;&#039;&#039;b&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Note that a &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt; &#039;&#039;&#039;attached to a greedy expression makes it non-greedy. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
! Greedy?&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;*&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| zero or more &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{0,}&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| one or more &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{1,}&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| zero or one &lt;br /&gt;
| &lt;br /&gt;
| equivalent to &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{0,1}&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n}&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| exactly &#039;&#039;n&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n,}&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| at least &#039;&#039;n&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n,m}&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| at least &#039;&#039;n&#039;&#039; but not more than &#039;&#039;m&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;Yes&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;*?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| zero or more &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{0,}?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;+?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| one or more &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{1,}?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;??&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| zero or one &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| equivalent to &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{0,1}?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n}?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| exactly &#039;&#039;n&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n,}?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| at least &#039;&#039;n &#039;&#039;times &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;{n,m}?&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| at least &#039;&#039;n&#039;&#039; but not more than &#039;&#039;m&#039;&#039; times &lt;br /&gt;
| &amp;lt;center&amp;gt;No&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Let us see some examples: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob.*r&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;alkjdflkj9&amp;lt;/span&amp;gt;r&#039;&#039;&#039; and &#039;&#039;&#039;foobr&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob.+r&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;alkjdflkj9&amp;lt;/span&amp;gt;r&#039;&#039;&#039; but not &#039;&#039;&#039;foobr&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob.?r&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r,&#039;&#039;&#039; &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;b&amp;lt;/span&amp;gt;r&#039;&#039;&#039; and &#039;&#039;&#039;foobr&#039;&#039;&#039; but not &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;alkj9&amp;lt;/span&amp;gt;r&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fooba{2}r&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fooba{2,}r&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;r,&#039;&#039;&#039; &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aaaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039; etc. but not &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fooba{2,3}r&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, or &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039; but not &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;aaaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039; or &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-red&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Alternatives  ===&lt;br /&gt;
&lt;br /&gt;
A RegEx expression can have multiple alternative characters or subexpressions. The metacharacter &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;|&amp;lt;/span&amp;gt;&#039;&#039;&#039; is used to separate the alternatives. &lt;br /&gt;
&lt;br /&gt;
For example, &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fee|fie|foe &amp;lt;/span&amp;gt;&#039;&#039;&#039;will match with &#039;&#039;&#039;fee&#039;&#039;&#039;, &#039;&#039;&#039;fie&#039;&#039;&#039;, or &#039;&#039;&#039;foe&#039;&#039;&#039; in the target string. &lt;br /&gt;
&lt;br /&gt;
It is difficult to understand where each alternative starts and ends. This is why it is a common practice to include alternatives in parentheses, to make it easier to understand. &lt;br /&gt;
&lt;br /&gt;
For example, &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fee|fie|foe &amp;lt;/span&amp;gt;&#039;&#039;&#039;can be written as &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;f(e|i|o)e&amp;lt;/span&amp;gt;&#039;&#039;&#039;, to make it easier to understand. &lt;br /&gt;
&lt;br /&gt;
Alternatives are tried from left to right, so the first alternative found for which the entire expression matches, is the one that is chosen. For example, when matching &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foo|foot&amp;lt;/span&amp;gt;&#039;&#039;&#039; against &#039;&#039;&#039;barefoot,&#039;&#039;&#039; only the &#039;&#039;&#039;foo &#039;&#039;&#039;part will match, because that is the first alternative tried, and it successfully matches the target string. (This is important when you are capturing matched text using parentheses.) &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foo(bar&amp;amp;#124;foo)&amp;lt;/span&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
| matches &#039;&#039;&#039;foobar&#039;&#039;&#039; or &#039;&#039;&#039;foofoo&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also remember that alternatives cannot be used inside a character class (square brackets), because &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;|&amp;lt;/span&amp;gt;&#039;&#039;&#039; is interpreted as a literal within &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[]&amp;lt;/span&amp;gt;&#039;&#039;&#039;. That means &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[fee|fie|foe]&amp;lt;/span&amp;gt;&#039;&#039;&#039; is same as &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;[feio|]&amp;lt;/span&amp;gt;&#039;&#039;&#039;. (The other characters are treated as duplicates, and ignored).&lt;br /&gt;
&lt;br /&gt;
=== Subexpressions  ===&lt;br /&gt;
&lt;br /&gt;
Parts of any RegEx pattern can be enclosed in brackets &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;()&amp;lt;/span&amp;gt;, just like using brackets in a mathematics formula. Each part that is enclosed in brackets is called a &amp;quot;&#039;&#039;subexpression&amp;quot;.&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
The brackets serve two main purposes: &lt;br /&gt;
&lt;br /&gt;
*Better readability, as in the mathematical formula &#039;&#039;&#039;a+(b+c).&#039;&#039;&#039; &lt;br /&gt;
*Make a functional group, as in the mathematical formula &#039;&#039;&#039;a(b+c).&#039;&#039;&#039; This group is evaluated first.&lt;br /&gt;
&lt;br /&gt;
Let us see some examples: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! RegEx Pattern&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(fee)&amp;amp;#124;(fie)&amp;amp;#124;(foe)&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Much better readability than the equivalent RegEx pattern &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;fee&amp;amp;#124;fie&amp;amp;#124;foe&amp;lt;/span&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(foobar){2,3}&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches with the entire enclosed string &#039;&#039;&#039;foobar &#039;&#039;&#039;repeated 2 or 3 times&#039;&#039;&#039;.&#039;&#039;&#039; &lt;br /&gt;
(i.e., matches with &#039;&#039;&#039;foobarfoobar &#039;&#039;&#039;or &#039;&#039;&#039;foobarfoobarfoobar&#039;&#039;&#039;)&amp;lt;br&amp;gt;(The iterator acts on the entire subexpression. Compare with the example below!) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foobar{2,3}&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Matches with &#039;&#039;&#039;fooba&#039;&#039;&#039; followed by the character &#039;&#039;&#039;r &#039;&#039;&#039;repeated 2 or 3 times&#039;&#039;&#039;.&amp;lt;br&amp;gt;&#039;&#039;&#039;(i.e., matches with fooba&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;rr&amp;lt;/span&amp;gt; or fooba&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;rrr&amp;lt;/span&amp;gt;) (The iterator acts only on the last character.)&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;foob([0-9]&amp;amp;#124;a+)r&amp;lt;/span&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
| matches only the character &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;1&amp;lt;/span&amp;gt;r &#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;a&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, &#039;&#039;&#039;foob&amp;lt;span class=&amp;quot;hl-teal&amp;quot;&amp;gt;aaaa&amp;lt;/span&amp;gt;r&#039;&#039;&#039;, etc. &amp;lt;br&amp;gt;(The subexpression is evaluated first.)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Backreferences ===&lt;br /&gt;
&lt;br /&gt;
You must have told (or heard-) jokes like this one: &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Two guys walk in a bar. The &#039;&#039;&#039;&#039;&#039;first guy&#039;&#039;&#039;&#039;&#039; says.... Then the &#039;&#039;&#039;&#039;&#039;second guy&#039;&#039;&#039;&#039;&#039; replies....&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Then you are already familiar with &#039;&#039;backreferences&#039;&#039;! &lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&amp;quot;backreference&amp;quot;&#039;&#039; is a &#039;&#039;numbered reference &#039;&#039;to a previously mentioned thing. &lt;br /&gt;
&lt;br /&gt;
RegEx also has backreferences. Let us understand how backreferences are defined in RegEx. &lt;br /&gt;
&lt;br /&gt;
The RegEx engine tries to find text that matches the &#039;&#039;whole&#039;&#039; RegEx pattern. If a matching text is found, the RegEx engine identifies the matching text for each of the subexpressions in the pattern. &lt;br /&gt;
&lt;br /&gt;
At this stage, the RegEx engine gives numbers to these matching parts: &lt;br /&gt;
&lt;br /&gt;
*The text that matches the &#039;&#039;entire&#039;&#039; RegEx expression takes the number &#039;0&#039;. &lt;br /&gt;
*The text matching any subexpression is given a number based on the position of that subexpression inside the pattern. In other words, text matching the &#039;&#039;n&#039;&#039;th subexpression will take the number &#039;n&#039;.&lt;br /&gt;
&lt;br /&gt;
Now we use those numbers to refer to the entire pattern and/or subexpressions. (That is why these numbers are called &#039;&#039;&#039;&amp;quot;backreference&amp;quot;&#039;&#039;&#039;.) &lt;br /&gt;
&lt;br /&gt;
The backreference to the &#039;&#039;n&#039;&#039;&amp;lt;sup&amp;gt;th&amp;lt;/sup&amp;gt; subexpression is written as &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\n&amp;lt;/span&amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The backreferences can be used to compose the RegEx pattern itself, as shown below: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.)\1+&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;aaaa &#039;&#039;&#039;and &#039;&#039;&#039;cc &#039;&#039;&#039;(any single character that is repeated twice or more)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.+)\1+&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt; &lt;br /&gt;
| matches &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;aa&amp;lt;/span&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;c&amp;lt;/span&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;ab&amp;lt;/span&amp;gt;&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;123&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;123&amp;lt;/span&amp;gt;&#039;&#039;&#039; &lt;br /&gt;
(a set of one or more characters, repeated twice or more) &lt;br /&gt;
&lt;br /&gt;
(The character-sets are alternately colored &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-blue&amp;quot;&amp;gt;blue&amp;lt;/span&amp;gt;&#039;&#039;&#039; and &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-pink&amp;quot;&amp;gt;pink&amp;lt;/span&amp;gt; &#039;&#039;&#039;for easy identification. Observe how a RegEx pattern can match quite different text! ) &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Substitution of text using backreference  ====&lt;br /&gt;
&lt;br /&gt;
The backreferences are also used in &#039;&#039;find-and-replace&#039;&#039; operations, to re-assemble new text from old. &lt;br /&gt;
&lt;br /&gt;
*The expressions &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\1&amp;lt;/span&amp;gt;&#039;&#039;&#039; through &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\9&amp;lt;/span&amp;gt;&#039;&#039;&#039; serve as backreferences to the subexpressions found in the RegEx pattern. The expression &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\0&amp;lt;/span&amp;gt; &#039;&#039;&#039;is used to represent the text that matches the whole RegEx pattern. These are used in the &amp;quot;find&amp;quot; part of the operation. &lt;br /&gt;
*The expressions &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$1&amp;lt;/span&amp;gt;&#039;&#039;&#039; through &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$9&amp;lt;/span&amp;gt;&#039;&#039;&#039; represent the actual text that matches the &#039;&#039;respective&#039;&#039; subexpressions.These are used in the &amp;quot;replace&amp;quot; part of the operation.&lt;br /&gt;
*The expressions &#039;&#039;&#039;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$0&amp;lt;/span&amp;gt;&#039;&#039;&#039; refers to the whole original name. Note: it is not necessary to enclosed them in round brackets () for this use, $0 is just there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The replacement text is typically a combination of- &lt;br /&gt;
&lt;br /&gt;
*The text that matched the subexpressions, and &lt;br /&gt;
*Some new text.&lt;br /&gt;
&lt;br /&gt;
Note that the RegEx pattern &#039;&#039;may&#039;&#039; have some parts that are not enclosed in (). (In other words, it may have parts that are not subexpressions.) Such parts are not used in the replacement text. &lt;br /&gt;
&lt;br /&gt;
Here are some &amp;quot;find-and-replace&amp;quot; examples: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Expression&lt;br /&gt;
! Replace&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;(.*) (.*)&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$2, $1&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Switch two words around and put a comma after the resulting first word. Example: if input string is &amp;quot;John Smith&amp;quot;, then output will be &amp;quot;Smith, John&amp;quot;. &lt;br /&gt;
Notice that the replacement text also has additional literal text in the middle (comma and space). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\b(\d{2})-(\d{2})-(\d{4})\b&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;$3-$2-$1&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| Find date sequences in dd-mm-yyyy format and reverse them into yyyy-mm-dd format. &amp;lt;br&amp;gt;(e.g. 25-10-2007 is converted to 2007-10-25). &lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: This is not a very robust example, because &amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\d&amp;lt;/span&amp;gt; can represent any digit in range of 0-9. That means sequences like 99-99-9999 also will match this pattern, resulting in a problem. This in fact shows that you need to be careful with RegEx patterns! &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&amp;lt;span class=&amp;quot;hl-orange&amp;quot;&amp;gt;\[.*?\]&amp;lt;/span&amp;gt;&amp;lt;/center&amp;gt; &lt;br /&gt;
| &lt;br /&gt;
| Remove the contents of the [...] (square brackets), and the brackets too. &amp;lt;br&amp;gt;(Replace with &#039;&#039;nothing&#039;&#039; means &#039;&#039;deleting&#039;&#039;.) &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Limitations for binary data ===&lt;br /&gt;
&lt;br /&gt;
One of the known limitation of RegEx engine when working with binary data is that the &amp;lt;u&amp;gt;input string is not search beyond the first occurrence of NULL character (\x00)&amp;lt;/u&amp;gt;. This would not affect file names because there are simply no NULL characters in them, but may affect parsing of binary content of files when working in [[ReNamer:Pascal Script|Pascal Script]] for example.&lt;br /&gt;
&lt;br /&gt;
=== External links ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.regular-expressions.info/ www.regular-expressions.info] &lt;br /&gt;
** Excellent site devoted to regular expressions. Nicely structured and with many easy-to-understand examples. &lt;br /&gt;
* [http://www.regexpstudio.com/ www.regexpstudio.com] &lt;br /&gt;
** Freeware regular expressions library for Delphi.&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Quick_guide&amp;diff=2158</id>
		<title>ReNamer:Pascal Script:Quick guide</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Quick_guide&amp;diff=2158"/>
		<updated>2011-02-19T05:49:30Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Branching */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you are not familiar with Pascal Scripting, first go through the excellent [http://www.taoyue.com/tutorials/pascal/contents.html tutorial] written by &#039;&#039;&#039;Tao Yue&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
The following is a short overview of Pascal Script.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Basic pascal script ==&lt;br /&gt;
&lt;br /&gt;
The structure of a basic script is as follows (keywords are shown in ALLCAPS bold): &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin-left: auto; margin-right: auto&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
&#039;&#039;&#039;CONST&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&amp;amp;lt;Constant declarations&amp;amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TYPE&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&amp;amp;lt;Type declarations&amp;amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VAR&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&amp;amp;lt;Variable declarations&amp;amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BEGIN&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&amp;amp;lt;Executable statements&amp;amp;gt;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;END.&#039;&#039;&#039; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that:&lt;br /&gt;
* The main code must be within the &#039;&#039;&#039;begin&#039;&#039;&#039; and &#039;&#039;&#039;end.&#039;&#039;&#039; keywords.&lt;br /&gt;
* All statements in the script use the semicolon &amp;quot;&#039;&#039;&#039;;&#039;&#039;&#039;&amp;quot; as terminator. Only the last statement (&#039;&#039;&#039;END.&#039;&#039;&#039;) uses a dot as terminator.&lt;br /&gt;
&lt;br /&gt;
== Control structures ==&lt;br /&gt;
&lt;br /&gt;
All the typical control structures (building blocks) occurring in Pascal Script are described in the following table. The table shows a flow chart and Pascal Script code required to implement that logic. To compose your own [[ReNamer:Rules:PascalScript|PascalScript rule]], you can simply copy and paste the code and then edit it to finish your script. &lt;br /&gt;
&lt;br /&gt;
In actual implementation, just substitute the following: &lt;br /&gt;
&lt;br /&gt;
*Replace &#039;&#039;&#039;&#039;&#039;&amp;amp;lt;Condition&amp;amp;gt;&#039;&#039;&#039;&#039;&#039; with an actual Pascal statement that tests for a condition. &lt;br /&gt;
*Replace &#039;&#039;&#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039;&#039;&#039; with code block that takes action relevant to the condition. There may be several statements.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Branching ===&lt;br /&gt;
&lt;br /&gt;
These structures are used to execute different blocks of code depending upon a condition. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Branching structure&lt;br /&gt;
! Pascal script&lt;br /&gt;
! Flowchart (Logic)&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
! If-then&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;if &amp;amp;lt;Condition&amp;amp;gt; then &lt;br /&gt;
begin &lt;br /&gt;
  &amp;amp;lt;Action&amp;amp;gt; &lt;br /&gt;
end;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| [[Image:PascalScriptIfThen.png|center]] &lt;br /&gt;
| &lt;br /&gt;
Execute the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; statement only if the &#039;&#039;&#039;&amp;amp;lt;Condition&amp;amp;gt;&#039;&#039;&#039; is met. Otherwise pass on the control to the next statement that follows the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039;.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! If-then-else&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;pre&amp;gt;if &amp;amp;lt;Condition&amp;amp;gt; then &lt;br /&gt;
begin &lt;br /&gt;
  &amp;amp;lt;Action-1&amp;amp;gt; &lt;br /&gt;
end else &lt;br /&gt;
begin &lt;br /&gt;
  &amp;amp;lt;Action-2&amp;amp;gt; &lt;br /&gt;
end;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| [[Image:PascalScriptIfThenElse.png|center]] &lt;br /&gt;
| &lt;br /&gt;
Two alternative actions are provided.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;&amp;amp;lt;Condition&amp;amp;gt;&#039;&#039;&#039; is met, execute &#039;&#039;&#039;&amp;amp;lt;Action-1&amp;amp;gt;&#039;&#039;&#039;. Otherwise execute &#039;&#039;&#039;&amp;amp;lt;Action-2&amp;amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Thus one of these two &#039;&#039;&#039;&amp;amp;lt;Actions&amp;amp;gt;&#039;&#039;&#039; are definitely executed.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
After execution of the action, pass on the control to the next statement.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! case/switch (exclusive)&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;pre&amp;gt;case X of &lt;br /&gt;
  1:&lt;br /&gt;
    begin &lt;br /&gt;
      &amp;amp;lt;Action-1&amp;amp;gt;&lt;br /&gt;
      Break; &lt;br /&gt;
    end; &lt;br /&gt;
  2:&lt;br /&gt;
    begin &lt;br /&gt;
      &amp;amp;lt;Action-2&amp;amp;gt;&lt;br /&gt;
      Break&lt;br /&gt;
 &lt;br /&gt;
    end; &lt;br /&gt;
  else&lt;br /&gt;
    begin &lt;br /&gt;
      &amp;amp;lt;Default Action&amp;amp;gt; &lt;br /&gt;
    end; &lt;br /&gt;
end;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| [[Image:PascalScriptCase.png|center]] &lt;br /&gt;
| &lt;br /&gt;
&amp;lt;br&amp;gt; This code structure has several &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; blocks, each with its own condition. &lt;br /&gt;
&lt;br /&gt;
*Any given &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; block is executed only if its condition is met. &lt;br /&gt;
*One and only one &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; is executed. After that, the control passes on to the next statement. (It does &amp;lt;u&amp;gt;not&amp;lt;/u&amp;gt; check for the next condition.) &lt;br /&gt;
*The conditions are checked in the &amp;quot;top down&amp;quot; order. So even if the other conditions are also met, their &#039;&#039;&#039;&amp;amp;lt;Actions&amp;amp;gt;&#039;&#039;&#039; will never be executed. &lt;br /&gt;
*The code structure can optionally have a &#039;&#039;&#039;&amp;quot;Else&amp;quot; Action&#039;&#039;&#039;. It is executed if (and only if-) none of the conditions are met.&lt;br /&gt;
&lt;br /&gt;
This is a generalized version of the &#039;&#039;&#039;if-then-else&#039;&#039;&#039;&amp;amp;nbsp;block (see second row above). &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! case/switch (fall-through)&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;pre&amp;gt;case X of &lt;br /&gt;
  1:&lt;br /&gt;
    begin &lt;br /&gt;
      &amp;amp;lt;Action-1&amp;amp;gt; &lt;br /&gt;
    end; &lt;br /&gt;
  2:&lt;br /&gt;
    begin &lt;br /&gt;
      &amp;amp;lt;Action-2&amp;amp;gt; &lt;br /&gt;
    end; &lt;br /&gt;
  else&lt;br /&gt;
    begin &lt;br /&gt;
      &amp;amp;lt;Default Action&amp;amp;gt; &lt;br /&gt;
    end; &lt;br /&gt;
end;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| [[Image:PascalScriptCaseWithFallThrough.png|center]] &lt;br /&gt;
| &lt;br /&gt;
This is similar to the &#039;&#039;&#039;case &#039;&#039;&#039;structure above, but here, &amp;lt;u&amp;gt;all&amp;lt;/u&amp;gt; the conditions are checked, and if any condition is met, the corresponding &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; is executed. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The code structure can optionally have a &#039;&#039;&#039;default&#039;&#039;&#039; action. If defined, this action is &amp;lt;u&amp;gt;always&amp;lt;/u&amp;gt; executed, regardless of whether any of the conditions are met. After that, the control is passed to the next statement. &lt;br /&gt;
&lt;br /&gt;
*In an extreme case, &amp;lt;u&amp;gt;all&amp;lt;/u&amp;gt; of the &#039;&#039;&#039;&amp;amp;lt;Actions&amp;amp;gt; &#039;&#039;&#039;may be executed, including the &#039;&#039;&#039;&#039;&#039;default&#039;&#039;&#039;&#039;&#039; action. &lt;br /&gt;
*Execution of one &#039;&#039;&#039;&amp;amp;lt;action&amp;amp;gt;&#039;&#039;&#039; may affect whether a subsequent condition is met.&lt;br /&gt;
&lt;br /&gt;
This structure is equivalent to a series of &#039;&#039;&#039;if-then&#039;&#039;&#039; blocks (see the first row), PLUS an optional &#039;&#039;&#039;&amp;amp;lt;Default&#039;&#039;&#039; &#039;&#039;&#039;Action&amp;amp;gt;&#039;&#039;&#039; block. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Loops  ===&lt;br /&gt;
&lt;br /&gt;
Loops are used to execute a block of code iteratively till a certain condition is met. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Loops &lt;br /&gt;
! Pascal script &lt;br /&gt;
! Flowchart (Logic) &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
! For To Do &lt;br /&gt;
| &amp;lt;pre&amp;gt;for I&amp;amp;nbsp;:= X to Y do &lt;br /&gt;
begin &lt;br /&gt;
  &amp;amp;lt;Action&amp;amp;gt; &lt;br /&gt;
end;&amp;lt;/pre&amp;gt; &lt;br /&gt;
| [[Image:PascalScriptForLoop.png|center]] &lt;br /&gt;
| Execute the &amp;amp;lt;Action&amp;amp;gt; a certain number of times. &lt;br /&gt;
This example shows that the counter is incremented by 1, but it can be any statement that changes the value of the counter vaiable towards the target value. &lt;br /&gt;
&lt;br /&gt;
Similarly, the decision block can have any logical expression with the counter. &lt;br /&gt;
&lt;br /&gt;
Make sure that the exit condition is reached at some point of time; otherwise the loop will execute endlessly, and ReNamer will appear to be hung. &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! While Do &lt;br /&gt;
| &amp;lt;pre&amp;gt;while &amp;amp;lt;Condition&amp;amp;gt; do &lt;br /&gt;
begin &lt;br /&gt;
  &amp;amp;lt;Action&amp;amp;gt; &lt;br /&gt;
end;&amp;lt;/pre&amp;gt; &lt;br /&gt;
| [[Image:PascalScriptWhileLoop.png|center]] &lt;br /&gt;
| Check for a condition and if it is met, execute the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039;. &lt;br /&gt;
The loop is repeated till the condition is met. When the condition is not met, the loop is terminated and control passes to the next statement. Note that if the condition fails in the first-ever check, the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; may not be executed at all. &lt;br /&gt;
&lt;br /&gt;
Make sure that the condition will fail at some point of time; otherwise the loop will execute endlessly, and ReNamer will appear to be hung. &lt;br /&gt;
&lt;br /&gt;
Sometimes the condition is set to be always TRUE, and then a statement inside the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; block breaks the loop based on a different condition.(See the &#039;&#039;&#039;break &#039;&#039;&#039;command below)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Repeat Until &lt;br /&gt;
| &amp;lt;pre&amp;gt;repeat &lt;br /&gt;
  &amp;amp;lt;Action&amp;amp;gt; &lt;br /&gt;
until &amp;amp;lt;Condition&amp;amp;gt;;&amp;lt;/pre&amp;gt; &lt;br /&gt;
| [[Image:PascalScriptRepeatUntilLoop.png|center]] &lt;br /&gt;
| This structure is similar to the &#039;&#039;&#039;While&#039;&#039;&#039; loop (see above). However, the only difference is that the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; is taken first and &#039;&#039;then&#039;&#039; the condition is checked. As a result, the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; is executed at least once. &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! Break &lt;br /&gt;
| &amp;lt;pre&amp;gt;Break;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;OR&#039;&#039;&#039;&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;if &amp;amp;lt;Condition&amp;amp;gt; then Break;&amp;lt;/pre&amp;gt; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
This statement is placed in any of the above loops to terminate the loop when a condition is met. Typically, it is used as the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; statement in a &#039;&#039;&#039;if-then&#039;&#039;&#039; block. This block is then embedded (nested) inside the other code block that is to be contionally terminated. &lt;br /&gt;
&lt;br /&gt;
See the &#039;&#039;&#039;Case&#039;&#039;&#039; block [[ReNamer:Pascal_Script:Quick_guide#Branching|above]], which uses the &#039;&#039;&#039;break &#039;&#039;&#039;statement as integral part of its structure. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Continue &lt;br /&gt;
| &amp;lt;pre&amp;gt;Continue;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;OR&#039;&#039;&#039;&amp;lt;/u&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;if &amp;amp;lt;Condition&amp;amp;gt; then Continue;&amp;lt;/pre&amp;gt; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
This statement is placed in any of the above loops to jump to the end of the current iteration, bypassing all the subsequent statements within the loop. However, the execution of the loop continues (the next iteration starts). &lt;br /&gt;
&lt;br /&gt;
Typically, it is used as the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; statement in a &#039;&#039;&#039;if-then&#039;&#039;&#039; block. This block is then embedded (nested) inside the other code block, just before the statements that are to be skipped in the current iteration. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Exit &lt;br /&gt;
| &amp;lt;pre&amp;gt;Exit;&amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;OR&#039;&#039;&#039;&amp;lt;/u&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;if &amp;amp;lt;Condition&amp;amp;gt; then Exit;&amp;lt;/pre&amp;gt; &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | &lt;br /&gt;
This statement is placed in any of the above loops to jump to the end of the current iteration, and also terminate the loop. The control passes to the next statement after the loop &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Typically, it is used as the &#039;&#039;&#039;&amp;amp;lt;Action&amp;amp;gt;&#039;&#039;&#039; statement in a &#039;&#039;&#039;if-then&#039;&#039;&#039; block that is embedded (nested) inside the other code block &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2157</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2157"/>
		<updated>2011-02-19T05:46:39Z</updated>

		<summary type="html">&lt;p&gt;Narayan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool.&lt;br /&gt;
&lt;br /&gt;
ReNamer offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, removing the content inside brackets, adding number sequences, changing file extensions, etc. &lt;br /&gt;
&lt;br /&gt;
Advanced users can program their own algorithm using [[ReNamer:Rules:PascalScript|PascalScript]] rule. &lt;br /&gt;
&lt;br /&gt;
ReNamer allows you to combine multiple renaming actions as a rule set, which can be saved, re-loaded, and edited. In addition, it can rename folders and process regular expressions. It can handle Unicode (non-English scripts). &lt;br /&gt;
&lt;br /&gt;
ReNamer supports a variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Beta}}&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2135</id>
		<title>Shutter</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2135"/>
		<updated>2011-01-06T16:44:29Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Shutter.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[Shutter]] is a powerful and flexible multipurpose task-launcher. &lt;br /&gt;
&lt;br /&gt;
Despite its name, its use is not limited to shutting down a program or the PC: Shutter can wait for one or more events and then execute a lot of diverse actions, such as- &lt;br /&gt;
&lt;br /&gt;
*Launch specified application(s) &lt;br /&gt;
*Close specified application window(s) &lt;br /&gt;
*Kill specified application(s) even if they are running in system tray. &lt;br /&gt;
*Play a custom sound &lt;br /&gt;
*Display a message on screen &lt;br /&gt;
*Disconnect the dial-up modem &lt;br /&gt;
*Log out from Windows account, &lt;br /&gt;
*Lock the desktop or start a screensaver. &lt;br /&gt;
*Shut down the PC, reboot, hibernate, sleep, etc.&lt;br /&gt;
&lt;br /&gt;
Apart from a user-friendly and easy-to-use interface, Shutter also offers the following options: &lt;br /&gt;
&lt;br /&gt;
*You can create links on Desktop, to execute any of the supported actions directly from the desktop. &lt;br /&gt;
*You can use Shutter&#039;s &#039;&#039;&#039;Web Interface&#039;&#039;&#039; to remotely execute any action.&lt;br /&gt;
&lt;br /&gt;
:You can also remotely see the run-time information about the computer: Logged In User, Up Time, List of Processes, Screenshot of a Desktop, plus Command Line Execution.&lt;br /&gt;
&lt;br /&gt;
==User Manual==&lt;br /&gt;
Note that this manual describes the latest [http://www.den4b.com/?x=downloads&amp;amp;product=shutter beta]. &lt;br /&gt;
As a result, if you are using the stable version of Shutter, you may not have some of the features described here. &lt;br /&gt;
Also, the screenshots shown here may be a little different from the interface you are using.&lt;br /&gt;
&lt;br /&gt;
*[[Shutter:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[Shutter:Workflow|Step-by-step]] &lt;br /&gt;
**[[Shutter:Events|Events]] &lt;br /&gt;
**[[Shutter:Logic|Interrelationship between Events]] &lt;br /&gt;
**[[Shutter:Actions|Actions]] &lt;br /&gt;
*[[Shutter:Options|Program options]] &lt;br /&gt;
*[[Shutter:Run as service|Run as service]] &lt;br /&gt;
*[[Shutter:Web Interface|Running remotely (Web interface)]] &lt;br /&gt;
*[[Shutter:Typical uses|Typical uses]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Shutter]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2134</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2134"/>
		<updated>2011-01-06T16:43:59Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest [http://www.den4b.com/?x=downloads&amp;amp;product=renamer beta]. As a result, if you are using the stable version of ReNamer, you may not have some of the features described here. Also, the screenshots shown here may be a little different from the interface you are using.&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2132</id>
		<title>Shutter</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2132"/>
		<updated>2011-01-06T04:55:29Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Shutter.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[Shutter]] is a powerful and flexible multipurpose task-launcher. &lt;br /&gt;
&lt;br /&gt;
Despite its name, its use is not limited to shutting down a program or the PC: Shutter can wait for one or more events and then execute a lot of diverse actions, such as- &lt;br /&gt;
&lt;br /&gt;
*Launch specified application(s) &lt;br /&gt;
*Close specified application window(s) &lt;br /&gt;
*Kill specified application(s) even if they are running in system tray. &lt;br /&gt;
*Play a custom sound &lt;br /&gt;
*Display a message on screen &lt;br /&gt;
*Disconnect the dial-up modem &lt;br /&gt;
*Log out from Windows account, &lt;br /&gt;
*Lock the desktop or start a screensaver. &lt;br /&gt;
*Shut down the PC, reboot, hibernate, sleep, etc.&lt;br /&gt;
&lt;br /&gt;
Apart from a user-friendly and easy-to-use interface, Shutter also offers the following options: &lt;br /&gt;
&lt;br /&gt;
*You can create links on Desktop, to execute any of the supported actions directly from the desktop. &lt;br /&gt;
*You can use Shutter&#039;s &#039;&#039;&#039;Web Interface&#039;&#039;&#039; to remotely execute any action.&lt;br /&gt;
&lt;br /&gt;
:You can also remotely see the run-time information about the computer: Logged In User, Up Time, List of Processes, Screenshot of a Desktop, plus Command Line Execution.&lt;br /&gt;
&lt;br /&gt;
==User Manual==&lt;br /&gt;
Note that this manual describes the latest [http://www.den4b.com/?x=downloads&amp;amp;product=shutter beta]. &lt;br /&gt;
As a result, if you are using the stable version of Shutter, you may not have some of the features described here. &lt;br /&gt;
Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[Shutter:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[Shutter:Workflow|Step-by-step]] &lt;br /&gt;
**[[Shutter:Events|Events]] &lt;br /&gt;
**[[Shutter:Logic|Interrelationship between Events]] &lt;br /&gt;
**[[Shutter:Actions|Actions]] &lt;br /&gt;
*[[Shutter:Options|Program options]] &lt;br /&gt;
*[[Shutter:Run as service|Run as service]] &lt;br /&gt;
*[[Shutter:Web Interface|Running remotely (Web interface)]] &lt;br /&gt;
*[[Shutter:Typical uses|Typical uses]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Shutter]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2131</id>
		<title>Shutter</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2131"/>
		<updated>2011-01-06T04:54:47Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Shutter.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[Shutter]] is a powerful and flexible multipurpose task-launcher. &lt;br /&gt;
&lt;br /&gt;
Despite its name, its use is not limited to shutting down a program or the PC: Shutter can wait for one or more events and then execute a lot of diverse actions, such as- &lt;br /&gt;
&lt;br /&gt;
*Launch specified application(s) &lt;br /&gt;
*Close specified application window(s) &lt;br /&gt;
*Kill specified application(s) even if they are running in system tray. &lt;br /&gt;
*Play a custom sound &lt;br /&gt;
*Display a message on screen &lt;br /&gt;
*Disconnect the dial-up modem &lt;br /&gt;
*Log out from Windows account, &lt;br /&gt;
*Lock the desktop or start a screensaver. &lt;br /&gt;
*Shut down the PC, reboot, hibernate, sleep, etc.&lt;br /&gt;
&lt;br /&gt;
Apart from a user-friendly and easy-to-use interface, Shutter also offers the following options: &lt;br /&gt;
&lt;br /&gt;
*You can create links on Desktop, to execute any of the supported actions directly from the desktop. &lt;br /&gt;
*You can use Shutter&#039;s &#039;&#039;&#039;Web Interface&#039;&#039;&#039; to remotely execute any action.&lt;br /&gt;
&lt;br /&gt;
:You can also remotely see the run-time information about the computer: Logged In User, Up Time, List of Processes, Screenshot of a Desktop, plus Command Line Execution.&lt;br /&gt;
&lt;br /&gt;
==User Manual==&lt;br /&gt;
Note that this manual describes the latest [http://www.den4b.com/?x=downloads&amp;amp;product=shutter|beta]. &lt;br /&gt;
As a result, if you are using the stable version of Shutter, you may not have some of the features described here. &lt;br /&gt;
Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[Shutter:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[Shutter:Workflow|Step-by-step]] &lt;br /&gt;
**[[Shutter:Events|Events]] &lt;br /&gt;
**[[Shutter:Logic|Interrelationship between Events]] &lt;br /&gt;
**[[Shutter:Actions|Actions]] &lt;br /&gt;
*[[Shutter:Options|Program options]] &lt;br /&gt;
*[[Shutter:Run as service|Run as service]] &lt;br /&gt;
*[[Shutter:Web Interface|Running remotely (Web interface)]] &lt;br /&gt;
*[[Shutter:Typical uses|Typical uses]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Shutter]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2130</id>
		<title>Shutter</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2130"/>
		<updated>2011-01-06T04:54:01Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Shutter.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[Shutter]] is a powerful and flexible multipurpose task-launcher. &lt;br /&gt;
&lt;br /&gt;
Despite its name, its use is not limited to shutting down a program or the PC: Shutter can wait for one or more events and then execute a lot of diverse actions, such as- &lt;br /&gt;
&lt;br /&gt;
*Launch specified application(s) &lt;br /&gt;
*Close specified application window(s) &lt;br /&gt;
*Kill specified application(s) even if they are running in system tray. &lt;br /&gt;
*Play a custom sound &lt;br /&gt;
*Display a message on screen &lt;br /&gt;
*Disconnect the dial-up modem &lt;br /&gt;
*Log out from Windows account, &lt;br /&gt;
*Lock the desktop or start a screensaver. &lt;br /&gt;
*Shut down the PC, reboot, hibernate, sleep, etc.&lt;br /&gt;
&lt;br /&gt;
Apart from a user-friendly and easy-to-use interface, Shutter also offers the following options: &lt;br /&gt;
&lt;br /&gt;
*You can create links on Desktop, to execute any of the supported actions directly from the desktop. &lt;br /&gt;
*You can use Shutter&#039;s &#039;&#039;&#039;Web Interface&#039;&#039;&#039; to remotely execute any action.&lt;br /&gt;
&lt;br /&gt;
:You can also remotely see the run-time information about the computer: Logged In User, Up Time, List of Processes, Screenshot of a Desktop, plus Command Line Execution.&lt;br /&gt;
&lt;br /&gt;
==User Manual==&lt;br /&gt;
Note that this manual describes the latest [beta|http://www.den4b.com/?x=downloads&amp;amp;product=shutter]. &lt;br /&gt;
As a result, if you are using the stable version of Shutter, you may not have some of the features described here. &lt;br /&gt;
Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[Shutter:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[Shutter:Workflow|Step-by-step]] &lt;br /&gt;
**[[Shutter:Events|Events]] &lt;br /&gt;
**[[Shutter:Logic|Interrelationship between Events]] &lt;br /&gt;
**[[Shutter:Actions|Actions]] &lt;br /&gt;
*[[Shutter:Options|Program options]] &lt;br /&gt;
*[[Shutter:Run as service|Run as service]] &lt;br /&gt;
*[[Shutter:Web Interface|Running remotely (Web interface)]] &lt;br /&gt;
*[[Shutter:Typical uses|Typical uses]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Shutter]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2129</id>
		<title>Shutter</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2129"/>
		<updated>2011-01-06T04:53:20Z</updated>

		<summary type="html">&lt;p&gt;Narayan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Shutter.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[Shutter]] is a powerful and flexible multipurpose task-launcher. &lt;br /&gt;
&lt;br /&gt;
Despite its name, its use is not limited to shutting down a program or the PC: Shutter can wait for one or more events and then execute a lot of diverse actions, such as- &lt;br /&gt;
&lt;br /&gt;
*Launch specified application(s) &lt;br /&gt;
*Close specified application window(s) &lt;br /&gt;
*Kill specified application(s) even if they are running in system tray. &lt;br /&gt;
*Play a custom sound &lt;br /&gt;
*Display a message on screen &lt;br /&gt;
*Disconnect the dial-up modem &lt;br /&gt;
*Log out from Windows account, &lt;br /&gt;
*Lock the desktop or start a screensaver. &lt;br /&gt;
*Shut down the PC, reboot, hibernate, sleep, etc.&lt;br /&gt;
&lt;br /&gt;
Apart from a user-friendly and easy-to-use interface, Shutter also offers the following options: &lt;br /&gt;
&lt;br /&gt;
*You can create links on Desktop, to execute any of the supported actions directly from the desktop. &lt;br /&gt;
*You can use Shutter&#039;s &#039;&#039;&#039;Web Interface&#039;&#039;&#039; to remotely execute any action.&lt;br /&gt;
&lt;br /&gt;
:You can also remotely see the run-time information about the computer: Logged In User, Up Time, List of Processes, Screenshot of a Desktop, plus Command Line Execution.&lt;br /&gt;
&lt;br /&gt;
==User Manual==&lt;br /&gt;
Note that this manual describes the latest [http://www.den4b.com/?x=downloads&amp;amp;product=shutter|beta]. &lt;br /&gt;
As a result, if you are using the stable version of Shutter, you may not have some of the features described here. &lt;br /&gt;
Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[Shutter:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[Shutter:Workflow|Step-by-step]] &lt;br /&gt;
**[[Shutter:Events|Events]] &lt;br /&gt;
**[[Shutter:Logic|Interrelationship between Events]] &lt;br /&gt;
**[[Shutter:Actions|Actions]] &lt;br /&gt;
*[[Shutter:Options|Program options]] &lt;br /&gt;
*[[Shutter:Run as service|Run as service]] &lt;br /&gt;
*[[Shutter:Web Interface|Running remotely (Web interface)]] &lt;br /&gt;
*[[Shutter:Typical uses|Typical uses]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Shutter]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2128</id>
		<title>Shutter</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Shutter&amp;diff=2128"/>
		<updated>2011-01-06T04:50:07Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Shutter.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[Shutter]] is a powerful and flexible multipurpose task-launcher. &lt;br /&gt;
&lt;br /&gt;
Despite its name, its use is not limited to shutting down a program or the PC: Shutter can wait for one or more events and then execute a lot of diverse actions, such as- &lt;br /&gt;
&lt;br /&gt;
*Launch specified application(s) &lt;br /&gt;
*Close specified application window(s) &lt;br /&gt;
*Kill specified application(s) even if they are running in system tray. &lt;br /&gt;
*Play a custom sound &lt;br /&gt;
*Display a message on screen &lt;br /&gt;
*Disconnect the dial-up modem &lt;br /&gt;
*Log out from Windows account, &lt;br /&gt;
*Lock the desktop or start a screensaver. &lt;br /&gt;
*Shut down the PC, reboot, hibernate, sleep, etc.&lt;br /&gt;
&lt;br /&gt;
Apart from a user-friendly and easy-to-use interface, Shutter also offers the following options: &lt;br /&gt;
&lt;br /&gt;
*You can create links on Desktop, to execute any of the supported actions directly from the desktop. &lt;br /&gt;
*You can use Shutter&#039;s &#039;&#039;&#039;Web Interface&#039;&#039;&#039; to remotely execute any action.&lt;br /&gt;
&lt;br /&gt;
:You can also remotely see the run-time information about the computer: Logged In User, Up Time, List of Processes, Screenshot of a Desktop, plus Command Line Execution.&lt;br /&gt;
&lt;br /&gt;
== Topics  ==&lt;br /&gt;
Note that this manual describes the latest beta.As a result, if you are using the stable version of Shutter, you may not have some of the features described here. &lt;br /&gt;
Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[Shutter:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[Shutter:Workflow|Step-by-step]] &lt;br /&gt;
**[[Shutter:Events|Events]] &lt;br /&gt;
**[[Shutter:Logic|Interrelationship between Events]] &lt;br /&gt;
**[[Shutter:Actions|Actions]] &lt;br /&gt;
*[[Shutter:Options|Program options]] &lt;br /&gt;
*[[Shutter:Run as service|Run as service]] &lt;br /&gt;
*[[Shutter:Web Interface|Running remotely (Web interface)]] &lt;br /&gt;
*[[Shutter:Typical uses|Typical uses]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Shutter]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2127</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2127"/>
		<updated>2011-01-06T02:15:04Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest [http://www.den4b.com/?x=downloads&amp;amp;product=renamer beta]. As a result, if you are using the stable version of ReNamer, you may not have some of the features described here. Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2126</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2126"/>
		<updated>2011-01-06T02:13:59Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest beta [[http://www.den4b.com/?x=downloads&amp;amp;product=renamer]]. As a result, if you are using the stable version of ReNamer, you may not have some of the features described here. Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2125</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2125"/>
		<updated>2011-01-06T02:13:31Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest beta[[http://www.den4b.com/?x=downloads&amp;amp;product=renamer]]. As a result, if you are using the stable version of ReNamer, you may not have some of the features described here. Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2124</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2124"/>
		<updated>2011-01-06T02:13:02Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest [[http://www.den4b.com/?x=downloads&amp;amp;product=renamer beta]]. As a result, if you are using the stable version of ReNamer, you may not have some of the features described here. Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2123</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2123"/>
		<updated>2011-01-06T02:12:07Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest beta [[http://www.den4b.com/?x=downloads&amp;amp;product=renamer]]. As a result, if you are using the stable version of ReNamer, you may not have some of the features described here. Also, the screenshots shown here may be a little different from the interface you see.&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2122</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2122"/>
		<updated>2011-01-06T02:08:51Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest beta [[http://www.den4b.com/?x=downloads&amp;amp;product=renamer]]. The stable version of ReNamer may not have some of these features. &lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2121</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2121"/>
		<updated>2011-01-06T02:07:57Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest beta available [[http://www.den4b.com/?x=downloads&amp;amp;product=renamer|here]]. The stable version of ReNamer may not have some of these features. &lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2120</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2120"/>
		<updated>2011-01-06T02:07:17Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual ==&lt;br /&gt;
&lt;br /&gt;
{{Download book|Book:ReNamer_User_Manual|Get the latest version of this manual as PDF}}&lt;br /&gt;
&lt;br /&gt;
Note that this manual describes the latest beta available [[here|http://www.den4b.com/?x=downloads&amp;amp;product=renamer]]. The stable version of ReNamer may not have some of these features. &lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2119</id>
		<title>ReNamer:Pascal Script:Functions</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2119"/>
		<updated>2010-12-31T02:19:07Z</updated>

		<summary type="html">&lt;p&gt;Narayan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Up|ReNamer:Pascal Script}}&lt;br /&gt;
&lt;br /&gt;
ReNamer has many functions to manipulate the entities related to file names and do some more complex tasks for individual files. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc. This functionality is available for use via the [[ReNamer:Rules:PascalScript|PascalScript rule]].&lt;br /&gt;
&lt;br /&gt;
A common prefix &#039;&#039;&#039;Wide&#039;&#039;&#039; in the function name indicates that the function deals with [[Unicode]] strings (WideString). The prefix is used because there are similar functions which deal with &#039;&#039;&#039;ANSI&#039;&#039;&#039; strings and in some cases simply for internal consistency. For example: &#039;&#039;&#039;ShowMessage&#039;&#039;&#039; and &#039;&#039;&#039;WideShowMessage&#039;&#039;&#039; procedures.&lt;br /&gt;
&lt;br /&gt;
== Basic String Handling ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Routine&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Insert&#039;&#039;&#039;(Source: String; var S: String; Index: Integer); &lt;br /&gt;
| Inserts the string &#039;&#039;&#039;S&#039;&#039;&#039; into string &#039;&#039;&#039;Source&#039;&#039;&#039; at position &#039;&#039;&#039;Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Delete&#039;&#039;&#039;(var S: String; Index, Count: Integer); &lt;br /&gt;
| Deletes &#039;&#039;&#039;Count&#039;&#039;&#039; characters from the string &#039;&#039;&#039;S&#039;&#039;&#039;, starting from position &#039;&#039;&#039;Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Copy&#039;&#039;&#039;(S: String; Index, Count: Integer): String; &lt;br /&gt;
| Copies &#039;&#039;&#039;Count&#039;&#039;&#039; characters from string &#039;&#039;&#039;S&#039;&#039;&#039;, starting at position &#039;&#039;&#039;Index&#039;&#039;&#039;, and returns them as a new string.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Pos&#039;&#039;&#039;(Substr: String; S: String): Integer; &lt;br /&gt;
| Returns the position of a string &#039;&#039;&#039;Substr&#039;&#039;&#039; in another string &#039;&#039;&#039;S&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Indexes of characters in strings are 1 based, so first character in string S would be S[1].&lt;br /&gt;
&lt;br /&gt;
== Length Management ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Routine&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;SetLength&#039;&#039;&#039;(var S: Array; NewLength: Integer); &lt;br /&gt;
| Sets the length of array variable &#039;&#039;&#039;S&#039;&#039;&#039; to &#039;&#039;&#039;NewLength&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;SetLength&#039;&#039;&#039;(var S: String; NewLength: Integer); &lt;br /&gt;
| Sets the length of string variable &#039;&#039;&#039;S&#039;&#039;&#039; to &#039;&#039;&#039;NewLength&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;SetLength&#039;&#039;&#039;(var S: WideString; NewLength: Integer); &lt;br /&gt;
| Sets the length of widestring &#039;&#039;&#039;S&#039;&#039;&#039; to &#039;&#039;&#039;NewLength&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Length&#039;&#039;&#039;(const S: Array): Integer; &lt;br /&gt;
| Returns the length of array &#039;&#039;&#039;S &#039;&#039;&#039; (number of elements).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Length&#039;&#039;&#039;(const S: String): Integer; &lt;br /&gt;
| Returns the length of string &#039;&#039;&#039;S&#039;&#039;&#039; (number of characters).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Length&#039;&#039;&#039;(const S: WideString): Integer;&lt;br /&gt;
| Returns the length of WideString &#039;&#039;&#039;S&#039;&#039;&#039; (number of characters).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Unicode String Handling ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Routine&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideInsert&#039;&#039;&#039;(const Substr: WideString; var Dest: WideString; Index: Integer); &lt;br /&gt;
| Inserts &#039;&#039;&#039;Substr&#039;&#039;&#039; in &#039;&#039;&#039;Dest&#039;&#039;&#039; at position &#039;&#039;&#039;Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideDelete&#039;&#039;&#039;(var S: WideString; Index, Count: Integer); &lt;br /&gt;
| Deletes &#039;&#039;&#039;Count&#039;&#039;&#039; characters from &#039;&#039;&#039;S&#039;&#039;&#039;, starting from the &#039;&#039;&#039;Index&#039;&#039;&#039; position.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideSetLength&#039;&#039;&#039;(var S: WideString; NewLength: Integer); &lt;br /&gt;
| Change the length of string &#039;&#039;&#039;S&#039;&#039;&#039; to a new length specified by &#039;&#039;&#039;NewLength&#039;&#039;&#039;. If new length is smaller than original, the string is truncated. If new length is greater than original, the string will be expanded but additional characters will not be initialized and can be anything.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideLength&#039;&#039;&#039;(const S: WideString): Integer; &lt;br /&gt;
| Returns the length of WideString &#039;&#039;&#039;S&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCopy&#039;&#039;&#039;(const S: WideString; Index, Count: Integer): WideString; &lt;br /&gt;
| Returns &#039;&#039;&#039;Count&#039;&#039;&#039; characters from WideString &#039;&#039;&#039;S&#039;&#039;&#039;, starting at position &#039;&#039;&#039;Index&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WidePos&#039;&#039;&#039;(const SubStr, S: WideString): Integer; &lt;br /&gt;
| Find and occurrence of &#039;&#039;&#039;SubStr&#039;&#039;&#039; in &#039;&#039;&#039;S&#039;&#039;&#039;. Returns the position of first occurrence, or &#039;&#039;&#039;0&#039;&#039;&#039; if nothing was found.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WidePosEx&#039;&#039;&#039;(const SubStr, S: WideString; Offset: Cardinal): Integer; &lt;br /&gt;
| Find and occurrence of &#039;&#039;&#039;SubStr&#039;&#039;&#039; in &#039;&#039;&#039;S&#039;&#039;&#039; but start searching from position specified by &#039;&#039;&#039;Offset&#039;&#039;&#039;. Returns the position of first occurrence, or &#039;&#039;&#039;0&#039;&#039;&#039; if nothing was found.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideUpperCase&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| Returns the ALLCAPS version of the WideString &#039;&#039;&#039;S&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideLowerCase&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| Returns the lowercase version of the WideString &#039;&#039;&#039;S&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCompareStr&#039;&#039;&#039;(const S1, S2: WideString): Integer; &lt;br /&gt;
| Compares two WideStrings &#039;&#039;&#039;S1&#039;&#039;&#039; and &#039;&#039;&#039;S2&#039;&#039;&#039;, case-sensitive, and returns an integer based on the result. The return value is less than 0 if S1 is less than S2, 0 if S1 equals S2, or greater than 0 if S1 is greater than S2.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCompareText&#039;&#039;&#039;(const S1, S2: WideString): Integer; &lt;br /&gt;
| Compares two WideStrings &#039;&#039;&#039;S1&#039;&#039;&#039; and &#039;&#039;&#039;S2&#039;&#039;&#039;, case-insensitive, and returns an integer based on the result. The return value is less than 0 if S1 is less than S2, 0 if S1 equals S2, or greater than 0 if S1 is greater than S2.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSameText&#039;&#039;&#039;(const S1, S2: WideString): Boolean; &lt;br /&gt;
| Compares two WideStrings &#039;&#039;&#039;S1&#039;&#039;&#039; and &#039;&#039;&#039;S2&#039;&#039;&#039;, case-insensitive. Returns TRUE if both are identical, otherwise returns FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideTextPos&#039;&#039;&#039;(const SubStr, S: WideString): Integer; &lt;br /&gt;
| Behaves like &#039;&#039;&#039;WidePos&#039;&#039;&#039; function, except text if processed in case-insensitive manner.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideTrim&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| Removes leading and trailing spaces and control characters from the given string &#039;&#039;&#039;S&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideReplaceStr&#039;&#039;&#039;(const S, OldPattern, NewPattern: WideString): WideString; &lt;br /&gt;
| Returns the result of replacing on a string S, a string OldPattern (Case Sensitive), with a NewPattern.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideReplaceText&#039;&#039;&#039;(const S, OldPattern, NewPattern: WideString): WideString; &lt;br /&gt;
| Returns the result of replacing on a string S, a text OldPattern (Case Non-Sensitive), with a NewPattern.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSplitString&#039;&#039;&#039;(const Input, Delimiter: WideString): TStringsArray; &lt;br /&gt;
| &lt;br /&gt;
Splits the WideString &#039;&#039;&#039;Input &#039;&#039;&#039;wherever &#039;&#039;&#039;Delimiter&#039;&#039;&#039; occurs, and returns an array that contains the split parts. &lt;br /&gt;
&lt;br /&gt;
*The &#039;&#039;&#039;Delimiter&#039;&#039;&#039; itself can be a multi-character WideString. &amp;lt;br&amp;gt;(Unlike the usual comma, hyphen or space that is used for this purpose) &lt;br /&gt;
*The split parts (returned as elements of the array) do not contain the &#039;&#039;&#039;Delimiter&#039;&#039;&#039; WideString&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCaseCapitalize&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
Returns the &#039;&#039;Sentence case&#039;&#039; version of the WideString &#039;&#039;&#039;S&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Only the first alphabetic character is capitalized. All other alphabetic characters are converted to lowercase.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*If &#039;&#039;&#039;S&#039;&#039;&#039; begins with numeric characters, the first alphabetic character that follows will be capitalized.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCaseInvert&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| Inverts the case of all characters in the WideString &#039;&#039;&#039;S&#039;&#039;&#039; and returns the WideString.&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Meta Tags Extraction  ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;CalculateMetaTag&#039;&#039;&#039;(const FilePath: WideString; const MetaTagName String): String; &lt;br /&gt;
| Extracts and returns the value of a metatag specified by &#039;&#039;&#039;MetaTagName&#039;&#039;&#039; from the file specified by the complete absolute path &#039;&#039;&#039;FilePath&#039;&#039;&#039;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example, to extract &#039;&#039;&#039;EXIF_Date&#039;&#039;&#039; tag from an image and set it to the filename, one can use something like this:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  FileName := CalculateMetaTag(FilePath, &#039;EXIF_Date&#039;);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The full list of meta tags can be found in [[ReNamer:Meta Tags|Meta Tags]] article.&lt;br /&gt;
&lt;br /&gt;
== Regular Expressions ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;ReplaceRegEx&#039;&#039;&#039;(const Input, Find, Replace: WideString;const CaseSensitive, UseSubstitution: Boolean): WideString; &lt;br /&gt;
| Find-and-replace function using RegEx. Works like [[ReNamer:Rules:RegEx|RegEx rule]].&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;MatchesRegEx&#039;&#039;&#039;(const Input, Find: WideString;const CaseSensitive: Boolean): TStringsArray; &lt;br /&gt;
| Returns a list of RegEx matches as an array. Function returns an array of full matches, which matched the entire expression, not the sub-patterns. &lt;br /&gt;
&lt;br /&gt;
For example, given the Input &#039;Ax1_-_Bx2---Cx3&#039; and the function &#039;&#039;&#039;MatchesRegEx&#039;&#039;&#039;(Input, &#039;&#039;&#039;&#039;([A-Z])x(\d)&#039;&#039;&#039;&#039;, False).&amp;amp;nbsp;What we get is [&#039;&#039;&#039;&#039;Ax1&#039;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;Bx2&#039;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;Cx3&#039;&#039;&#039;&#039;]. Being these the 3 full matches found on the Input.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;SubMatchesRegEx&#039;&#039;&#039;(const Input, Find: WideString;const CaseSensitive: Boolean): TStringsArray; &lt;br /&gt;
| This function is very similar to &#039;&#039;&#039;MatchesRegEx&#039;&#039;&#039;, but instead of returning full expression matches it will return an array of sub-expression matches for the first full expression match. &lt;br /&gt;
&lt;br /&gt;
For example, given the Input &#039;Ax1_-_Bx2---Cx3&#039; and the function &#039;&#039;&#039;SubMatchesRegEx&#039;&#039;&#039;(Input, &#039;&#039;&#039;&#039;([A-Z])x(\d)&#039;&#039;&#039;&#039;, False).&amp;amp;nbsp;What we get is&amp;amp;nbsp;[&#039;&#039;&#039;&#039;A&#039;&#039;&#039;&#039;,&amp;amp;nbsp;&#039;&#039;&#039;&#039;1&#039;&#039;&#039;&#039;]. Being these the first sub-matches requested&amp;amp;nbsp;(two in this case). &lt;br /&gt;
&lt;br /&gt;
In this way, it can easily be combined with &#039;&#039;&#039;MatchesRegEx&#039;&#039;&#039; function, to allow users to find all global matches, and then parse those matches through &#039;&#039;&#039;SubMatchesRegEx&#039;&#039;&#039; function to find individual sub-expression matches of each global match.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
General parameters of the functions: &lt;br /&gt;
&lt;br /&gt;
* Input - The WideString that is input to the function. &lt;br /&gt;
* Find - RegEx pattern to be found (same as &#039;&#039;&#039;Expression&#039;&#039;&#039; field in the [[ReNamer:Rules:RegEx|RegEx rule]]).&lt;br /&gt;
* Replace - Replacement string (same as the &#039;&#039;&#039;Replace&#039;&#039;&#039; field in the [[ReNamer:Rules:RegEx|RegEx rule]]).&lt;br /&gt;
* CaseSensitive - Specifies whether to process in a case-sensitive mode.&lt;br /&gt;
* UseSubstitution - Determines whether use [[ReNamer:Regular Expressions#Backreferences|backreferences]] in the result.&lt;br /&gt;
&lt;br /&gt;
== Unicode Character Handling ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharUpper&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is in UPPERCASE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharLower&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is in lowercase.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharDigit&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a digit (numeric character 0-9). &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharSpace&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a white-space character, such as: space, form-feed, newline, carriage-return, tab and vertical-tab (characters classified as C1_SPACE).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharPunct&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a punctuation mark (characters classified as C1_PUNCT).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharCntrl&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a control character (characters classified as C1_CNTRL).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharBlank&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a blank, such as: space and tab (characters classified as C1_BLANK).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharXDigit&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a hexadecimal digit (0-9 or A-F).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharAlpha&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a alphanumeric character (a-z or A-Z).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharAlphaNumeric&#039;&#039;&#039;(WC: WideChar): Boolean; &lt;br /&gt;
| Checks a Unicode character &#039;&#039;&#039;WC&#039;&#039;&#039; and returns TRUE if it is a alphanumeric character or a numeric character (a-z, A-Z or 0-9).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCharUpper&#039;&#039;&#039;(const WC: WideChar): WideChar; &lt;br /&gt;
| Returns a UPPERCASE version of the input Unicode character. In case of non-alphabetic character, it returns the same character.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCharLower&#039;&#039;&#039;(const WC: WideChar): WideChar; &lt;br /&gt;
| Returns a lowercase version of the input Unicode character. In case of non-alphabetic character, it returns the same character.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; Character classifications, such as C1_UPPER, C1_LOWER, C1_DIGIT, C1_SPACE, C1_PUNCT, C1_CNTRL, C1_BLANK, C1_XDIGIT, C1_ALPHA - are part of Unicode definitions. More information regarding classification can be found on the internet. For example: [http://www.fileformat.info/info/unicode/ http://www.fileformat.info/info/unicode/].&lt;br /&gt;
&lt;br /&gt;
== Unicode Conversion ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideToAnsi&#039;&#039;&#039;(const WS: WideString): String; &lt;br /&gt;
| Converts a [[Unicode]] string to its [[ANSI]] version.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;AnsiToWide&#039;&#039;&#039;(const S: String): WideString; &lt;br /&gt;
| Converts a [[ANSI]] string to its [[Unicode]] version.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Encode&#039;&#039;&#039;(const WS: WideString): String; &lt;br /&gt;
| Convert [[Unicode]] string to the [http://en.wikipedia.org/wiki/UTF-8 UTF-8] encoded string.&amp;lt;br/&amp;gt;Useful for storing Unicode strings in files, sometimes for compatibility reasons and sometimes to reduce the size of the file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
| Convert [http://en.wikipedia.org/wiki/UTF-8 UTF-8] encoded string to its full [[Unicode]] representation.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Basic Conversion ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;BoolToStr&#039;&#039;&#039;(B: Boolean): String;&lt;br /&gt;
| Convert boolean variable into a string. Returns &#039;&#039;&#039;True&#039;&#039;&#039; or &#039;&#039;&#039;False&#039;&#039;&#039; string.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IntToStr&#039;&#039;&#039;(Value: Integer): String; &lt;br /&gt;
| Converts an integer to a string. The following assumptions are correct:&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
* IntToStr(123) = &#039;123&#039;&lt;br /&gt;
* IntToStr(0123) = &#039;123&#039;&lt;br /&gt;
* IntToStr(123) &amp;lt;&amp;gt; &#039;0123&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToInt&#039;&#039;&#039;(const S: String): Integer; &lt;br /&gt;
| Converts a string to an integer. The following equalities are correct:&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
* StrToInt(&#039;123&#039;) = 123&lt;br /&gt;
* StrToInt(&#039;123&#039;) = 0123&lt;br /&gt;
* StrToInt(&#039;0123&#039;) = 123&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning:&#039;&#039;&#039; An error will occur if the parameter to this function cannot be converted to an integer!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToIntDef&#039;&#039;&#039;(const S: String; const Default: Integer): Integer; &lt;br /&gt;
| Behaves like &#039;&#039;&#039;StrToInt&#039;&#039;&#039; function, but instead of producing an error on incorrect input function allows the &#039;&#039;&#039;Default&#039;&#039;&#039; value to be specified, which will be returned if the input cannot be converted to an integer.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FloatToStr&#039;&#039;&#039;(Value: Extended): string;&lt;br /&gt;
| Converts supplied floating point value to its string representation, using default system format.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToFloat&#039;&#039;&#039;(const S: string): Extended;&lt;br /&gt;
| Converts supplied string to a floating point value.&amp;lt;br&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039; An error will occur if the parameter to this function cannot be converted to a floating point value!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToFloatDef&#039;&#039;&#039;(const S: string; const Default: Extended): Extended;&lt;br /&gt;
| Behaves like &#039;&#039;&#039;StrToFloat&#039;&#039;&#039; function, but instead of producing an error on incorrect input function allows the &#039;&#039;&#039;Default&#039;&#039;&#039; value to be specified, which will be returned if the input cannot be converted to a floating point value.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FormatFloat&#039;&#039;&#039;(const Format: string; Value: Extended): string;&lt;br /&gt;
| Converts supplied floating point value to its string representation, using user specific &#039;&#039;&#039;Format&#039;&#039;&#039;. Format string may contain following specifiers:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Specifier&lt;br /&gt;
! Represents&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0&#039;&#039;&#039;&amp;amp;nbsp;(zero)&lt;br /&gt;
| Digit placeholder. If the value being formatted has a digit in the position where the &amp;quot;0&amp;quot; appears in the format string, then that digit is copied to the output string. Otherwise, a &amp;quot;0&amp;quot; is stored in that position in the output string.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;#&#039;&#039;&#039;&amp;amp;nbsp;(hash)&lt;br /&gt;
| Digit placeholder. If the value being formatted has a digit in the position where the &amp;quot;#&amp;quot; appears in the format string, then that digit is copied to the output string. Otherwise, nothing is stored in that position in the output string.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;.&#039;&#039;&#039;&amp;amp;nbsp;(dot)&lt;br /&gt;
| Decimal point. The first &amp;quot;.&amp;quot; character in the format string determines the location of the decimal separator in the formatted value, any additional &amp;quot;.&amp;quot; characters are ignored.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;,&#039;&#039;&#039;&amp;amp;nbsp;(comma)&lt;br /&gt;
| Thousand separator. If the format string contains one or more &amp;quot;,&amp;quot; characters, the output will have thousand separators inserted between each group of three digits to the left of the decimal point. The placement and number of &amp;quot;,&amp;quot; characters in the format string does not affect the output.&lt;br /&gt;
|}&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DateToStr&#039;&#039;&#039;(D: TDateTime): String; &lt;br /&gt;
| Converts a date to a string, using system format for the short date, for example: &#039;&#039;&#039;dd/mm/yyyy&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToDate&#039;&#039;&#039;(const S: String): TDateTime; &lt;br /&gt;
| Converts a date string to a proper TDateTime value, using system format for the short date, for example: &#039;&#039;&#039;dd/mm/yyyy&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IntToHex&#039;&#039;&#039;(Value: Integer; Digits: Integer): String; &lt;br /&gt;
| Converts an integer to its hexadecimal representation. Here are samples:&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
* IntToHex(1234, 1) = &#039;4D2&#039;&lt;br /&gt;
* IntToHex(1234, 8) = &#039;000004D2&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;HexToInt&#039;&#039;&#039;(const HexNum: String): Integer; &lt;br /&gt;
| Converts a hexadecimal value to its decimal representation.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Warning:&#039;&#039;&#039; An error will occur if the parameter to this function cannot be converted to an integer!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;HexToIntDef&#039;&#039;&#039;(const HexNum: String; Default: Integer): Integer; &lt;br /&gt;
| Behaves like &#039;&#039;&#039;HexToInt&#039;&#039;&#039; function, but instead of producing an error on incorrect input function allows the &#039;&#039;&#039;Default&#039;&#039;&#039; value to be specified, which will be returned if the input cannot be converted to an integer.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Ord&#039;&#039;&#039;(X: Char): Byte; &lt;br /&gt;
| Return an ordinal value (byte representation) of a character.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Chr&#039;&#039;&#039;(X: Byte): Char; &lt;br /&gt;
| Return a character by its ordinal value (byte representation).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Date and Time ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Date&#039;&#039;&#039;: TDateTime; &lt;br /&gt;
| Returns the current system date.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Time&#039;&#039;&#039;: TDateTime; &lt;br /&gt;
| Returns the current system time.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Now&#039;&#039;&#039;: TDateTime; &lt;br /&gt;
| Returns the current system date and time.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;EncodeDate&#039;&#039;&#039;(Year, Month, Day: Word): TDateTime; &lt;br /&gt;
| Generates date value for the specified &#039;&#039;&#039;Year&#039;&#039;&#039;, &#039;&#039;&#039;Month&#039;&#039;&#039;, &#039;&#039;&#039;Day&#039;&#039;&#039;. Parameters must be within a valid date range: Year = 0..9999, Month = 1..12, Day = 1..31 (depending on month/year). An error will be raised if parameters are invalid.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;EncodeTime&#039;&#039;&#039;(Hour, Min, Sec, MSec: Word): TDateTime; &lt;br /&gt;
| Generates time value for the specified &#039;&#039;&#039;Hour&#039;&#039;&#039;, &#039;&#039;&#039;Min&#039;&#039;&#039;, &#039;&#039;&#039;Sec&#039;&#039;&#039;, &#039;&#039;&#039;MSec&#039;&#039;&#039;. Parameters must be within a valid time range: Hour = 0..23, Min = 0..59, Sec = 0..59, MSec = 0..999. An error will be raised if parameters are invalid.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;TryEncodeDate&#039;&#039;&#039;(Year, Month, Day: Word; var Date: TDateTime): Boolean; &lt;br /&gt;
| Behaves exactly like &#039;&#039;&#039;EncodeDate&#039;&#039;&#039; function, except this function returns the TRUE or FALSE depending on the success of the operation. If operation was successful, function will return TRUE and the generated date value will be written in the &#039;&#039;&#039;Date&#039;&#039;&#039; variable.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;TryEncodeTime&#039;&#039;&#039;(Hour, Min, Sec, MSec: Word; var Time: TDateTime): Boolean; &lt;br /&gt;
| Behaves exactly like &#039;&#039;&#039;EncodeTime&#039;&#039;&#039; function, except this function returns the TRUE or FALSE depending on the success of the operation. If operation was successful, function will return TRUE and the generated time value will be written in the &#039;&#039;&#039;Time&#039;&#039;&#039; variable.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;DecodeDate&#039;&#039;&#039;(const DateTime: TDateTime; var Year, Month, Day: Word); &lt;br /&gt;
| Extracts &#039;&#039;&#039;Year&#039;&#039;&#039;, &#039;&#039;&#039;Month&#039;&#039;&#039; and &#039;&#039;&#039;Day&#039;&#039;&#039; components from a given &#039;&#039;&#039;DateTime&#039;&#039;&#039; value.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;DecodeTime&#039;&#039;&#039;(const DateTime: TDateTime; var Hour, Min, Sec, MSec: Word); &lt;br /&gt;
| Extracts &#039;&#039;&#039;Hour&#039;&#039;&#039;, &#039;&#039;&#039;Min&#039;&#039;&#039;, &#039;&#039;&#039;Sec&#039;&#039;&#039; and &#039;&#039;&#039;MSec&#039;&#039;&#039; components from a given &#039;&#039;&#039;DateTime&#039;&#039;&#039; value.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DayOfWeek&#039;&#039;&#039;(const DateTime: TDateTime): Word; &lt;br /&gt;
| Returns the day of the week (as an index) for the specified &#039;&#039;&#039;DateTime&#039;&#039;&#039; value. The indexes are: 1 = Sunday, 2 = Monday, 3 = Tuesday, 4 = Wednesday, 5 = Thursday, 6 = Friday, 7 = Saturday.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DateTimeToUnix&#039;&#039;&#039;(D: TDateTime): Int64;&lt;br /&gt;
| Converts &#039;&#039;&#039;D&#039;&#039;&#039; value of type &#039;&#039;&#039;TDateTime&#039;&#039;&#039; to a Unix timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UnixToDateTime&#039;&#039;&#039;(U: Int64): TDateTime; &lt;br /&gt;
| Converts a Unix timestamp to a value of &#039;&#039;&#039;TDateTime&#039;&#039;&#039; type.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FormatDateTime&#039;&#039;&#039;(const Fmt: String; D: TDateTime): String; &lt;br /&gt;
| This function provides rich formatting of a &#039;&#039;&#039;DateTime&#039;&#039;&#039; value into a string. [[ReNamer:Date and Time format|Date and time format]] is defined by the &#039;&#039;&#039;Fmt&#039;&#039;&#039; string. &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncYear&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfYears: Integer): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of years (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime; ANumberOfMonths: Integer): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of months (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of weeks (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfDays: Integer): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of days (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfHours: Int64): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of hours (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfMinutes: Int64): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of minutes (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfSeconds: Int64): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of seconds (plus or minus).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfMilliSeconds: Int64): TDateTime; &lt;br /&gt;
| Increments a TDateTime variable by a number of milliseconds (plus or minus).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File Management ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideFileSize&#039;&#039;&#039;(const FileName: WideString): Int64; &lt;br /&gt;
| Returns the size of the file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideFileExists&#039;&#039;&#039;(const FileName: WideString): Boolean; &lt;br /&gt;
| Check whether specified file exists. Returns TRUE if file exists, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideDirectoryExists&#039;&#039;&#039;(const Directory: WideString): Boolean; &lt;br /&gt;
| Check whether specified directory exists. Returns TRUE if directory exists, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideForceDirectories&#039;&#039;&#039;(Dir: WideString): Boolean; &lt;br /&gt;
| Makes sure that that all directories in the path exist. If they don&#039;t, function will try to create them, recursively. Returns TRUE if all folders exist or have been successfully created.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCreateDir&#039;&#039;&#039;(const Dir: WideString): Boolean; &lt;br /&gt;
| Create specified directory (non-recursive). Returns TRUE on success, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideDeleteFile&#039;&#039;&#039;(const FileName: WideString): Boolean; &lt;br /&gt;
| Delete physical file from the disk. Returns TRUE on success, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideRenameFile&#039;&#039;&#039;(const OldName, NewName: WideString): Boolean; &lt;br /&gt;
| Rename file from &#039;&#039;&#039;OldName&#039;&#039;&#039; to &#039;&#039;&#039;NewName&#039;&#039;&#039;. Returns TRUE on success, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideCopyFile&#039;&#039;&#039;(FromFile, ToFile: WideString; FailIfExists: Boolean): Boolean;&lt;br /&gt;
| Rename file from &#039;&#039;&#039;FromFile&#039;&#039;&#039; to &#039;&#039;&#039;ToFile&#039;&#039;&#039;. If &#039;&#039;&#039;FailIfExists&#039;&#039;&#039; flag is TRUE, file will not be copied when destination file already exists, otherwise, destination file will be overwritten. Returns TRUE on success, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideFileSearch&#039;&#039;&#039;(const Name, DirList: WideString): WideString; &lt;br /&gt;
| Search through the directories passed in &#039;&#039;&#039;DirList&#039;&#039;&#039; for a file named &#039;&#039;&#039;Name&#039;&#039;&#039;. DirList is a list of path names delimited by semicolons. If file matching Name is located, function returns a string specifying a path name for that file. If no matching file exists, function returns an empty string.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideGetCurrentDir&#039;&#039;&#039;: WideString; &lt;br /&gt;
| Returns the current working directory.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSetCurrentDir&#039;&#039;&#039;(const Dir: WideString): Boolean; &lt;br /&gt;
| Sets the current working directory to the directory specified by parameter &#039;&#039;&#039;Dir&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideScanDirForFiles&#039;&#039;&#039;(Dir: WideString; var Files: TStringsArray; const Recursive, IncludeHidden, IncludeSystem: Boolean; const Mask: WideString); &lt;br /&gt;
| You can get a list of the files inside a folder.&lt;br /&gt;
*&#039;&#039;&#039;Dir&#039;&#039;&#039;: The folder you want to scan.&lt;br /&gt;
*&#039;&#039;&#039;Files&#039;&#039;&#039;: Where the list of files is going to be saved.&lt;br /&gt;
*&#039;&#039;&#039;Recursive&#039;&#039;&#039;: Do you want to scan the subfolders?&lt;br /&gt;
*&#039;&#039;&#039;IncludeHidden&#039;&#039;&#039;: Do you want to list the hidden files?&lt;br /&gt;
*&#039;&#039;&#039;IncludeSystem&#039;&#039;&#039;: Do you want to list the system files?&lt;br /&gt;
*&#039;&#039;&#039;Mask&#039;&#039;&#039;: You can list everything (&#039;*&#039;), or only the files that contain some string (example: &#039;*.txt&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideScanDirForFolders&#039;&#039;&#039;(Dir: WideString; var Folders: TStringsArray; const Recursive, IncludeHidden, IncludeSystem: Boolean); &lt;br /&gt;
| You can get a list of the folders inside other folder.&lt;br /&gt;
*&#039;&#039;&#039;Dir&#039;&#039;&#039;: The folder you want to scan.&lt;br /&gt;
*&#039;&#039;&#039;Folders&#039;&#039;&#039;: Where the list of folders is going to be saved.&lt;br /&gt;
*&#039;&#039;&#039;Recursive&#039;&#039;&#039;: Do you want to scan the subfolders?&lt;br /&gt;
*&#039;&#039;&#039;IncludeHidden&#039;&#039;&#039;: Do you want to list the hidden folders?&lt;br /&gt;
*&#039;&#039;&#039;IncludeSystem&#039;&#039;&#039;: Do you want to list the system folders?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File Name Utilities ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFilePath&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the entire path of the file &amp;lt;br&amp;gt;(starting from the drive letter)&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileDir&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the folder in which the file is located.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileDrive&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the drive letter (e.g. &#039;C:&#039;).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the filename with extension. &amp;lt;br&amp;gt;(e.g. &amp;quot;FileName.txt&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractBaseName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns only the file&#039; base name (but not the dot or extension). (e.g. &amp;quot;FileName&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileExt&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Returns the file&#039;s extension with the dot (e.g. &amp;quot;.txt&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideChangeFileExt&#039;&#039;&#039;(const FileName, Extension: WideString): WideString; &lt;br /&gt;
| Replaces the original extension, and returns the new filename with extension. (e.g. &amp;quot;FineName.txt&amp;quot; -&amp;amp;gt; &amp;quot;FineName.pdf&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideStripExtension&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Strips off the extension from the filename. Returns the striped string.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExpandFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| Converts the relative file name into a fully qualified path. This function does not verify that the resulting path refers to an existing file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString; &lt;br /&gt;
| Creates a relative path to go from &#039;&#039;&#039;BaseName&#039;&#039;&#039; to &#039;&#039;&#039;DestName&#039;&#039;&#039;. For example:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| &#039;&#039;&#039;BaseName:&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;C:\Folder\FileName.txt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;DestName:&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;C:\Documents\Article.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;Result:&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;..\Documents\Article.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractShortPathName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| It converts a path into it&#039;s representation in DOS format.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideIncludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| By this function you can ensure that a path from a file does &#039;&#039;&#039;not contain&#039;&#039;&#039; the path delimiter (&#039;\&#039;) at the end of the path.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExcludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| By this function you can ensure that a path from a folder &#039;&#039;&#039;contains&#039;&#039;&#039; the path delimiter (&#039;\&#039;) at the end of the path.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSameFileName&#039;&#039;&#039;(const S1, S2: WideString): Boolean; &lt;br /&gt;
| Compares the filenames &#039;&#039;&#039;S1&#039;&#039;&#039; and &#039;&#039;&#039;S2&#039;&#039;&#039;, and returns TRUE if they are identical.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideGetEnvironmentVar&#039;&#039;&#039;(const VarName: WideString): WideString; &lt;br /&gt;
| Returns an environment variable by its name. For example:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  UserName, ComputerName: WideString;&lt;br /&gt;
begin&lt;br /&gt;
  UserName := WideGetEnvironmentVar(&#039;USERNAME&#039;);&lt;br /&gt;
  ComputerName := WideGetEnvironmentVar(&#039;COMPUTERNAME&#039;);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File Read/Write ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadFragment&#039;&#039;&#039;(const FileName: WideString; Start, Length: Integer): String; &lt;br /&gt;
| Starting at position &#039;&#039;&#039;Start&#039;&#039;&#039;, read &#039;&#039;&#039;Length&#039;&#039;&#039; number of characters of the file &#039;&#039;&#039;FileName&#039;&#039;&#039; and return them as a string. &#039;&#039;&#039;Start&#039;&#039;&#039; is 0-based, so in order to start the fragment at the beginning of the file, set this parameter to 0 (zero).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadLine&#039;&#039;&#039;(const FileName: WideString; LineNum: Integer): String; &lt;br /&gt;
| Read a line from a file &#039;&#039;&#039;FileName&#039;&#039;&#039; specified by a line index &#039;&#039;&#039;LineNum&#039;&#039;&#039;. &#039;&#039;&#039;LineNum&#039;&#039;&#039; is 1 based, so to get the first line set this parameter to 1 (one).&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; This function is extremely inefficient and provided only for convenience!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer; &lt;br /&gt;
| Count number of lines in the file.&amp;lt;br/&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; This function is extremely inefficient and provided only for convenience!&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String; &lt;br /&gt;
| Return the entire content of the file as a String.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| Write &#039;&#039;&#039;Content&#039;&#039;&#039; to the file. If target file already exists, it will be overwritten.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| Append &#039;&#039;&#039;Content&#039;&#039;&#039; to the end of the file. If target file does not exist, it will be created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== File Time ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileTimeModified&#039;&#039;&#039;(const FileName: WideString): TDateTime; &lt;br /&gt;
| Returns last modified time of the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileTimeCreated&#039;&#039;&#039;(const FileName: WideString): TDateTime; &lt;br /&gt;
| Returns creation time of the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;SetFileTimeCreated&#039;&#039;&#039;(const FileName: WideString; const DateTime: TDateTime): Boolean; &lt;br /&gt;
| Sets creation time for the specified file.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;SetFileTimeModified&#039;&#039;&#039;(const FileName: WideString; const DateTime: TDateTime): Boolean; &lt;br /&gt;
| Sets last modified time for the specified file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Process Execution ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;ShellOpenFile&#039;&#039;&#039;(const FileName: WideString): Boolean; &lt;br /&gt;
| Run (open) a file specified by &#039;&#039;&#039;FileName&#039;&#039;&#039;. Works like &amp;quot;Start &amp;amp;gt; Run&amp;quot; command. Parameter does not have to be an executable file, it can by any file or protocol with assigned handler. For example, you can open a Word document or a web page, and associated application will be launched:&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-family: monospace&amp;quot;&amp;gt;&lt;br /&gt;
* ShellOpenFile(&amp;lt;nowiki&amp;gt;&#039;http://www.den4b.com/&#039;&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
* ShellOpenFile(&amp;lt;nowiki&amp;gt;&#039;C:\Document.doc&#039;&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;ExecuteProgram&#039;&#039;&#039;(const Command: String; WaitForProgram: Boolean): Cardinal; &lt;br /&gt;
| Execute a command line specified by parameter &#039;&#039;&#039;Command&#039;&#039;&#039;. Works like &amp;quot;Command Prompt&amp;quot;. Parameter &#039;&#039;&#039;WaitForProgram&#039;&#039;&#039; allows you to specify whether the code needs to wait until the command (launched program) has finished executing.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;ExecConsoleApp&#039;&#039;&#039;(const CommandLine: String; out Output: String): Cardinal; &lt;br /&gt;
| Execute a command line specified by parameter &#039;&#039;&#039;CommandLine&#039;&#039;&#039; and record its standard output in the variable &#039;&#039;&#039;Output&#039;&#039;&#039;. Works like &amp;quot;Command Prompt&amp;quot;. Should be used only for console style applications. Returns the exit code.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dialogs ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;ShowMessage&#039;&#039;&#039;(const Msg: String); &lt;br /&gt;
| Show a simple dialog with the message specified by &#039;&#039;&#039;Msg&#039;&#039;&#039; parameter.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;WideShowMessage&#039;&#039;&#039;(const Msg: WideString); &lt;br /&gt;
| Same as &#039;&#039;&#039;ShowMessage&#039;&#039;&#039; function but parameter is Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DialogYesNo&#039;&#039;&#039;(const Msg: String): Boolean; &lt;br /&gt;
| Show a simple prompt with the message specified by &#039;&#039;&#039;Msg&#039;&#039;&#039; parameter and two button: Yes and No. Returns TRUE if user clicks Yes button, otherwise FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideDialogYesNo&#039;&#039;&#039;(const Msg: WideString): Boolean; &lt;br /&gt;
| Same as &#039;&#039;&#039;DialogYesNo&#039;&#039;&#039; function but parameter is WideString text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String; &lt;br /&gt;
| Displays a simple dialog box with the given &#039;&#039;&#039;ACaption&#039;&#039;&#039; and &#039;&#039;&#039;APrompt&#039;&#039;&#039; message. It asks the user to enter data in a text box on the dialog. A &#039;&#039;&#039;ADefault&#039;&#039;&#039; value is displayed in the text box initially. If the user presses OK, the value from the text box is returned, otherwise &#039;&#039;&#039;ADefault&#039;&#039;&#039; value is returned.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputQuery&#039;&#039;&#039;(const ACaption, APrompt: String; var Value: String): Boolean; &lt;br /&gt;
| Operates similar to &#039;&#039;&#039;InputBox&#039;&#039;&#039; function. The default value and the value of the text box after the dialog is closed are transferred via the &#039;&#039;&#039;Value&#039;&#039;&#039; parameter. Function returns TRUE is user clicked OK, otherwise returns FALSE.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString; &lt;br /&gt;
| Same as &#039;&#039;&#039;InputBox&#039;&#039;&#039; function but operates on WideString text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputQuery&#039;&#039;&#039;(const ACaption, APrompt: WideString; var Value: WideString): Boolean; &lt;br /&gt;
| Same as &#039;&#039;&#039;InputQuery&#039;&#039;&#039; function but operates on WideString text.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other Routines ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Function&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Sleep&#039;&#039;&#039;(Milliseconds: Cardinal); &lt;br /&gt;
| Sleep (pause the execution) for specified number of &#039;&#039;&#039;Milliseconds&#039;&#039;&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;DivMod&#039;&#039;&#039;(Dividend: Integer; Divisor: Word; var Result, Remainder: Word); &lt;br /&gt;
| Perform integer division and fetch the remainder as well, all in one operation. &#039;&#039;&#039;Dividend&#039;&#039;&#039; is the integer into which you are dividing. &#039;&#039;&#039;Divisor&#039;&#039;&#039; is the value by which to divide &#039;&#039;&#039;Dividend&#039;&#039;&#039;. &#039;&#039;&#039;Result&#039;&#039;&#039; returns the result of the integer division. &#039;&#039;&#039;Remainder&#039;&#039;&#039; returns the remainder (the difference between Result * Divisor and Dividend).&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Randomize&#039;&#039;&#039;; &lt;br /&gt;
| Prepares the random number generator. Should only be called once per application cycle.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;RandomRange&#039;&#039;&#039;(const AFrom, ATo: Integer): Integer; &lt;br /&gt;
| Return a random integer number within the specified &#039;&#039;&#039;AFrom&#039;&#039;&#039;..&#039;&#039;&#039;ATo&#039;&#039;&#039; (inclusive) range.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetClipboardText&#039;&#039;&#039;: WideString; &lt;br /&gt;
| Get the content of the the clipboard (text only).&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;SetClipboardText&#039;&#039;&#039;(const S: WideString); &lt;br /&gt;
| Set the content of the the clipboard (text only).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Base64Encode&#039;&#039;&#039;(const S: String): String; &lt;br /&gt;
| Encode string &#039;&#039;&#039;S&#039;&#039;&#039; into [http://en.wikipedia.org/wiki/Base64 Base64]. Useful for encoding binary data in order to minimize the likelihood of data being modified in transit through different systems, like email or internet.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Base64Decode&#039;&#039;&#039;(const S: String): String; &lt;br /&gt;
| Decode [http://en.wikipedia.org/wiki/Base64 Base64] string;&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;GetTickCount&#039;&#039;&#039;: Cardinal; &lt;br /&gt;
| Retrieves the number of milliseconds that have elapsed since the system was started (up to 49.7 days, then timer resets). The precision of this timer is very limited.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;SizeOf&#039;&#039;&#039;(X): Integer; &lt;br /&gt;
| Pass a variable reference to determine the number of bytes used to represent the variable. Pass a type identifier to determine the number of bytes used to represent instances of that type.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;br /&gt;
[[Category:Pascal Script]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=2110</id>
		<title>ReNamer:Rules:Delete</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=2110"/>
		<updated>2010-10-16T07:29:56Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Delete Rule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Insert|next=ReNamer:Rules:Remove}}&lt;br /&gt;
&lt;br /&gt;
== Delete Rule ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:DeleteRule.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This  rule will delete all characters located between the &#039;&#039;&#039;From&#039;&#039;&#039; and the  &#039;&#039;&#039;Until &#039;&#039;&#039; positions. Optionally, it can delete from the specified  position till the end of the name. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| From &lt;br /&gt;
| From which character-position you want to start the deletion.&lt;br /&gt;
Select from the following options: &lt;br /&gt;
*The starting position (count starts from 1) &lt;br /&gt;
*The delimiter from where the deletion starts.&lt;br /&gt;
**The delimiter can be a single character or even a string.&lt;br /&gt;
**Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Until &lt;br /&gt;
| Till which point you want to delete:&lt;br /&gt;
Select from the following options: &lt;br /&gt;
*Count: Specify how many characters to be deleted, starting from the FROM position. &lt;br /&gt;
*Delete till a specified delimiter is reached. &lt;br /&gt;
**You can use two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections.&lt;br /&gt;
**The delimiter can be a single character or even a string.&lt;br /&gt;
**Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
*Delete all characters till the end.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is unselected, the extension will be included in the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| If you select this option, ReNamer counts the position from the extreme right. (The &#039;&#039;&#039;From &#039;&#039;&#039; and &#039;&#039;&#039;Until&#039;&#039;&#039; positions switch places.)&lt;br /&gt;
*When  this option is selected, the &amp;quot;till the end&amp;quot; option in &#039;&#039;&#039;Until&#039;&#039;&#039;  deletes all characters on the left (what we regard as the &#039;&#039;beginning&#039;&#039;  of the name)&lt;br /&gt;
For example, to keep only the four characters on the  right side of the name (and delete all the rest of the characters on the  left), use:&lt;br /&gt;
{|&lt;br /&gt;
! From&lt;br /&gt;
! Until&lt;br /&gt;
|-&lt;br /&gt;
| Position 5&lt;br /&gt;
| Till the end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Do not remove delimiters &lt;br /&gt;
| If you select this option, the delimiters themselves will be retained. &lt;br /&gt;
*If you have used two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections, &#039;&#039;both&#039;&#039; of them will be retained.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=2109</id>
		<title>ReNamer:Rules:Delete</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=2109"/>
		<updated>2010-10-16T07:12:07Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Delete Rule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Insert|next=ReNamer:Rules:Remove}}&lt;br /&gt;
&lt;br /&gt;
== Delete Rule ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:DeleteRule.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This rule will delete all characters located between the &#039;&#039;&#039;From&#039;&#039;&#039; and the &#039;&#039;&#039;Until &#039;&#039;&#039; positions. Optionally, it can delete from the specified position till the end of the name. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| From &lt;br /&gt;
| From which character-position you want to start the deletion.&lt;br /&gt;
Select from the following options: &lt;br /&gt;
*The starting position (count starts from 1) &lt;br /&gt;
*The delimiter from where the deletion starts.&lt;br /&gt;
**The delimiter can be a single character or even a string.&lt;br /&gt;
**Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Until &lt;br /&gt;
| Till which point you want to delete:&lt;br /&gt;
Select from the following options: &lt;br /&gt;
* Count: How many characters to be deleted, starting with the START position. &lt;br /&gt;
*Delete till a specified delimiter is reached.&lt;br /&gt;
**The delimiter can be a single character or even a string.&lt;br /&gt;
**Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
&lt;br /&gt;
Same as above. In addition, you have the &#039;&#039;&#039;&#039;&#039;till the end&#039;&#039;&#039;&#039;&#039; option. &lt;br /&gt;
*You can use two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is unselected, the extension will be included in the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| If you select this option, ReNamer counts the position from the extreme right. (The &#039;&#039;&#039;From &#039;&#039;&#039; and &#039;&#039;&#039;Until&#039;&#039;&#039; positions switch places.)&lt;br /&gt;
*When this option is selected, the &amp;quot;till the end&amp;quot; option in &#039;&#039;&#039;Until&#039;&#039;&#039; deletes all characters on the left (what we regard as the &#039;&#039;beginning&#039;&#039; of the name)&lt;br /&gt;
For example, to keep only the four characters on the right side of the name (and delete all the rest of the characters on the left), use:&lt;br /&gt;
{|&lt;br /&gt;
! From&lt;br /&gt;
! Until&lt;br /&gt;
|-&lt;br /&gt;
| Position 5&lt;br /&gt;
| Till the end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Do not remove delimiters &lt;br /&gt;
| Will retain the delimiters &lt;br /&gt;
*If you have used two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections, &#039;&#039;both&#039;&#039; of them will be retained.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=2108</id>
		<title>ReNamer:Rules:Delete</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Rules:Delete&amp;diff=2108"/>
		<updated>2010-10-16T07:11:09Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* Delete Rule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=ReNamer:Rules|prev=ReNamer:Rules:Insert|next=ReNamer:Rules:Remove}}&lt;br /&gt;
&lt;br /&gt;
== Delete Rule ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:DeleteRule.png]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This rule will delete all characters located between the &#039;&#039;&#039;From&#039;&#039;&#039; and the &#039;&#039;&#039;Until &#039;&#039;&#039; positions. Optionally, it can delete from the specified position till the end of the name. &lt;br /&gt;
&lt;br /&gt;
The parameters are as follows: &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter &lt;br /&gt;
! Details&lt;br /&gt;
|-&lt;br /&gt;
| From &lt;br /&gt;
| From which character-position you want to start the deletion.&lt;br /&gt;
Select from the following options: &lt;br /&gt;
*The starting position (count starts from 1) &lt;br /&gt;
*The delimiter from where the deletion starts.&lt;br /&gt;
The delimiter can be a single character or even a string.&lt;br /&gt;
** Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Until &lt;br /&gt;
| Till which point you want to delete:&lt;br /&gt;
Select from the following options: &lt;br /&gt;
* Count: How many characters to be deleted, starting with the START position. &lt;br /&gt;
*Delete till a specified delimiter is reached.&lt;br /&gt;
The delimiter can be a single character or even a string.&lt;br /&gt;
** Typically &#039;&#039;&#039;, . / ( ) -&#039;&#039;&#039; and space are used as delimiters.&lt;br /&gt;
&lt;br /&gt;
Same as above. In addition, you have the &#039;&#039;&#039;&#039;&#039;till the end&#039;&#039;&#039;&#039;&#039; option. &lt;br /&gt;
*You can use two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Skip extension &lt;br /&gt;
| If this check box is unselected, the extension will be included in the rule.&lt;br /&gt;
|-&lt;br /&gt;
| Right-to-left &lt;br /&gt;
| If you select this option, ReNamer counts the position from the extreme right. (The &#039;&#039;&#039;From &#039;&#039;&#039; and &#039;&#039;&#039;Until&#039;&#039;&#039; positions switch places.)&lt;br /&gt;
*When this option is selected, the &amp;quot;till the end&amp;quot; option in &#039;&#039;&#039;Until&#039;&#039;&#039; deletes all characters on the left (what we regard as the &#039;&#039;beginning&#039;&#039; of the name)&lt;br /&gt;
For example, to keep only the four characters on the right side of the name (and delete all the rest of the characters on the left), use:&lt;br /&gt;
{|&lt;br /&gt;
! From&lt;br /&gt;
! Until&lt;br /&gt;
|-&lt;br /&gt;
| Position 5&lt;br /&gt;
| Till the end&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Do not remove delimiters &lt;br /&gt;
| Will retain the delimiters &lt;br /&gt;
*If you have used two different delimiters in &#039;&#039;&#039;From &#039;&#039;&#039;and &#039;&#039;&#039;Until&#039;&#039;&#039; sections, &#039;&#039;both&#039;&#039; of them will be retained.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=File:Book_Open_Small.png&amp;diff=2093</id>
		<title>File:Book Open Small.png</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=File:Book_Open_Small.png&amp;diff=2093"/>
		<updated>2010-10-02T07:48:40Z</updated>

		<summary type="html">&lt;p&gt;Narayan: uploaded a new version of &amp;amp;quot;File:Book Open Small.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Farm-Fresh Web Icons]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=File:Book_Open_Small.png&amp;diff=2092</id>
		<title>File:Book Open Small.png</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=File:Book_Open_Small.png&amp;diff=2092"/>
		<updated>2010-10-02T07:44:36Z</updated>

		<summary type="html">&lt;p&gt;Narayan: uploaded a new version of &amp;amp;quot;File:Book Open Small.png&amp;amp;quot;: Reverted to version as of 09:15, 27 September 2010&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Farm-Fresh Web Icons]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=File:Book_Open_Small.png&amp;diff=2091</id>
		<title>File:Book Open Small.png</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=File:Book_Open_Small.png&amp;diff=2091"/>
		<updated>2010-10-02T07:43:43Z</updated>

		<summary type="html">&lt;p&gt;Narayan: uploaded a new version of &amp;amp;quot;File:Book Open Small.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Farm-Fresh Web Icons]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Book:ReNamer_User_Manual&amp;diff=2090</id>
		<title>Book:ReNamer User Manual</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Book:ReNamer_User_Manual&amp;diff=2090"/>
		<updated>2010-09-28T04:28:55Z</updated>

		<summary type="html">&lt;p&gt;Narayan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{saved_book}}&lt;br /&gt;
&lt;br /&gt;
== ReNamer User Manual ==&lt;br /&gt;
&lt;br /&gt;
:[[ReNamer]]&lt;br /&gt;
:[[ReNamer:Introduction|Introduction]]&lt;br /&gt;
:[[ReNamer:Quick Guide|Quick Guide]]&lt;br /&gt;
:[[ReNamer:Step-by-step|Step-by-step]]&lt;br /&gt;
:[[ReNamer:Adding files and folders|Adding files and folders]]&lt;br /&gt;
:[[ReNamer:Managing rules|Managing Rules]]&lt;br /&gt;
:[[ReNamer:Previewing files|Previewing Files]]&lt;br /&gt;
:[[ReNamer:Renaming files|Renaming Files]]&lt;br /&gt;
:[[ReNamer:Using the Rules|Using the Rules]]&lt;br /&gt;
:[[ReNamer:Rules|Overview of Rules]]&lt;br /&gt;
:[[ReNamer:Rules:Insert|Insert Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Delete|Delete Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Remove|Remove Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Replace|Replace Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Rearrange|Rearrange Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Rearrange_Examples|Rearrange Rule Examples]]&lt;br /&gt;
:[[ReNamer:Rules:Extension|Extension Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Strip|Strip Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Case|Case Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Serialize|Serialize Rule]]&lt;br /&gt;
:[[ReNamer:Rules:CleanUp|CleanUp Rule]]&lt;br /&gt;
:[[ReNamer:Rules:Translit|Translit Rule]]&lt;br /&gt;
:[[ReNamer:Rules:RegEx|RegEx Rule]]&lt;br /&gt;
:[[ReNamer:Rules:PascalScript|PascalScript Rule]]&lt;br /&gt;
:[[ReNamer:Rules:UserInput|UserInput Rule]]&lt;br /&gt;
;Appendices&lt;br /&gt;
:[[ReNamer:Using presets|Using Presets]]&lt;br /&gt;
:[[ReNamer:Manual editing|Manual Editing]]&lt;br /&gt;
:[[ReNamer:Analyze|Analyze]]&lt;br /&gt;
:[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
:[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and Keyboard Shortcuts]] &lt;br /&gt;
:[[ReNamer:Menus for the Files pane|Menus for the Files Pane]]&lt;br /&gt;
:[[ReNamer:Context menus|Context Menus]]&lt;br /&gt;
:[[ReNamer:Date and Time format|Date and Time Format]]&lt;br /&gt;
:[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
:[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
:[[ReNamer:Analyze|Analyze]]&lt;br /&gt;
:[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
:[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
:[[ReNamer:Pascal Script:Quick guide|Quick Guide]]&lt;br /&gt;
:[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
:[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
:[[ReNamer:Pascal_Script#Script cookbook|PascalScript Cookbook]]  &lt;br /&gt;
:[[ReNamer:Scripts|PascalScripts]] &lt;br /&gt;
:[[ReNamer:Command Line|Using ReNamer in Command Line Mode]] &lt;br /&gt;
:[[ReNamer:Sorting files|Sorting Files]]&lt;br /&gt;
:[[ReNamer:Masks|Masks]]&lt;br /&gt;
:[[ReNamer:Renaming folders|Renaming Folders]]&lt;br /&gt;
:[[ReNamer:Renaming to another folder|Renaming to Another Folder and Binning]]&lt;br /&gt;
:[[ReNamer:Failed renaming|Failed Renaming]]&lt;br /&gt;
:[[ReNamer:Validation|Validation of New Names]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Books]]&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2081</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2081"/>
		<updated>2010-09-27T02:25:13Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual  ==&lt;br /&gt;
[http://www.den4b.com/w/index.php?title=Special:Book&amp;amp;bookcmd=render_collection&amp;amp;colltitle=Book:ReNamer_User_Manual&amp;amp;writer=rl Get the latest version of this manual as pdf]&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2080</id>
		<title>ReNamer</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer&amp;diff=2080"/>
		<updated>2010-09-27T02:17:18Z</updated>

		<summary type="html">&lt;p&gt;Narayan: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:ReNamer.png|thumb|250px]] &lt;br /&gt;
&lt;br /&gt;
[[ReNamer]] is a very powerful and flexible file renaming tool, which offers all the standard renaming procedures, including prefixes, suffixes, replacements, case changes, as well as removing contents of brackets, adding number sequences, changing file extensions, etc. For advanced users, there is a [[ReNamer:Rules:PascalScript|PascalScript]] rule, which let users program their very own renaming rule. Program allows you to combine multiple renaming actions as a rule set, applying each action in a logical sequence, which can be saved, loaded, and managed within the program. In addition, it has an ability to rename folders, process regular expressions, Unicode capable, and supports variety of meta tags, such as: [http://en.wikipedia.org/wiki/ID3 ID3v1], [http://en.wikipedia.org/wiki/ID3 ID3v2], [http://en.wikipedia.org/wiki/EXIF EXIF], [http://en.wikipedia.org/wiki/Object_Linking_and_Embedding OLE], [http://msdn.microsoft.com/en-us/library/ms779636.aspx AVI], [http://en.wikipedia.org/wiki/MD5 MD5], [http://en.wikipedia.org/wiki/CRC32 CRC32], [http://en.wikipedia.org/wiki/SHA1 SHA1] and many more. &lt;br /&gt;
&lt;br /&gt;
== User Manual  ==&lt;br /&gt;
[http://www.den4b.com/w/index.php?title=Special:Book&amp;amp;bookcmd=render_collection&amp;amp;colltitle=Book:ReNamer_User_Manual&amp;amp;writer=rl Get the latest version of this manual]&lt;br /&gt;
*[[ReNamer:Introduction|Introduction]] &lt;br /&gt;
*[[ReNamer:Quick Guide|Quick Guide]] &lt;br /&gt;
*[[ReNamer:Step-by-step|Step-by-step]] &lt;br /&gt;
**[[ReNamer:Adding files and folders|Adding files and folders]] &lt;br /&gt;
**[[ReNamer:Managing rules|Managing rules]] &lt;br /&gt;
**[[ReNamer:Previewing files|Previewing files]] &lt;br /&gt;
**[[ReNamer:Renaming files|Renaming files]] &lt;br /&gt;
*[[ReNamer:Using the Rules|Using the Rules]] &lt;br /&gt;
**[[ReNamer:Rules|Overview]] &lt;br /&gt;
**[[ReNamer:Rules:Insert|Insert]] &lt;br /&gt;
**[[ReNamer:Rules:Delete|Delete]] &lt;br /&gt;
**[[ReNamer:Rules:Remove|Remove]] &lt;br /&gt;
**[[ReNamer:Rules:Replace|Replace]]&lt;br /&gt;
**[[ReNamer:Rules:Rearrange|Rearrange]] ([[ReNamer:Rules:Rearrange Examples|Examples]])&lt;br /&gt;
**[[ReNamer:Rules:Extension|Extension]] &lt;br /&gt;
**[[ReNamer:Rules:Strip|Strip]] &lt;br /&gt;
**[[ReNamer:Rules:Case|Case]] &lt;br /&gt;
**[[ReNamer:Rules:Serialize|Serialize]] &lt;br /&gt;
**[[ReNamer:Rules:CleanUp|CleanUp]] &lt;br /&gt;
**[[ReNamer:Rules:Translit|Translit]] &lt;br /&gt;
**[[ReNamer:Rules:RegEx|RegEx]] &lt;br /&gt;
**[[ReNamer:Rules:PascalScript|PascalScript]] &lt;br /&gt;
**[[ReNamer:Rules:UserInput|UserInput]] &lt;br /&gt;
*[[ReNamer:Using presets|Using presets]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze window]] &lt;br /&gt;
*[[ReNamer:Manual editing|Manual editing]]&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[ReNamer:Program settings|Program settings]] &lt;br /&gt;
*[[ReNamer:Main Menu and keyboard shortcuts|Main Menu and keyboard shortcuts]] &lt;br /&gt;
*[[ReNamer:Menus for the Files pane|Menus for the Files pane]]&lt;br /&gt;
*[[ReNamer:Context menus|Context menus]]&lt;br /&gt;
*[[ReNamer:Date and Time format|Date and Time format]]&lt;br /&gt;
*[[ReNamer:Binary Signatures|Binary Signatures]] &lt;br /&gt;
*[[ReNamer:Meta Tags|Meta Tags]]&lt;br /&gt;
*[[ReNamer:Analyze|Analyze dialog]]&lt;br /&gt;
*[[ReNamer:Regular Expressions|Regular Expressions]] &lt;br /&gt;
*[[ReNamer:Pascal Script|Pascal Script]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Quick guide|Quick guide]]&lt;br /&gt;
**[[ReNamer:Pascal Script:Types|Types]] &lt;br /&gt;
**[[ReNamer:Pascal Script:Functions|Functions]]&lt;br /&gt;
**[[ReNamer:Pascal_Script#Script cookbook|Script cookbook]]  &lt;br /&gt;
**[[ReNamer:Scripts|Scripts]] &lt;br /&gt;
*[[ReNamer:Command Line|Command Line]] &lt;br /&gt;
*[[ReNamer:Sorting files|Sorting files]]&lt;br /&gt;
*[[ReNamer:Masks|Using masks]]&lt;br /&gt;
*[[ReNamer:Renaming folders|Renaming folders]]&lt;br /&gt;
*[[ReNamer:Renaming to another folder|Renaming to another folder (or sorting files into multiple folders)]]&lt;br /&gt;
*[[ReNamer:Failed renaming|Failed renaming]]&lt;br /&gt;
*[[ReNamer:Validation|Validation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ReNamer]]&lt;/div&gt;</summary>
		<author><name>Narayan</name></author>
	</entry>
</feed>