;If you notice anything wrong, please email naru@yeah.ne.jp
============================================================================
<Title>Flexible Renamer
<Copyright>Naru
<Target OS>Win95/98/Me/NT4/2000/XP
<License Type>Freeware
<Copying/Reproduction>Free
============================================================================

<Einführung>
 Flexible Renamer ist ein Datei/Ordner Umbenennungs Tool,
 welches Joker (Wildcard) oder Regular-Expression
 und Tag-Information (MP3, EXIF) benutzen kann.

<Eigenschaften inklusive>
 -Explorer-artige Benutzer-Oberfläche.
 -Kann Wildcard oder Regular-Expression(Perl Kompatibel) für Auswahl der Dateinamen.
 -Multiple Datei-Filter, Echtzeit-Vorschau, Undo.
 -Designed um mit sehr vielen Datein zu arbeiten.
 -Möglichkeit eine definierte Tiefe von Unterordner einzubeziehen.
 -Kann umbenennen und gleichzeitig in andere Ordner kopieren (bzw. verschieben).
 -Auf Ordner verteilen durch Benutzung von relativen Pfaden.
 -Fortlaufende Nummerierung für jede klassifizierte Gruppe (Ordner, Datum, Tag).

<Funktionen>
 *Umbenennen(kopieren/verschieben) von Opjekte(Datei/Ordner).
  -Nummer oder Zeichen einfügen(z.B. Zeitstempel, Ordnername...)
  -Nummer oder Zeichen entfernen(Verknüpfung zu, Kopie (n) von, [n], (n)), Unterstützt das 8.3 Format
  -Zeichen ändern(Groß-/kleinschreiben, Anfangsbuchstabe groß)
  -Zeichen ersetzen
  -Andere flexible Umbenennung durch Mustererkennung.
  -Schnellumbenennung des Zielnamens mit F2.
 *Umbenennung(Kopie/Verschieben) mittels Tag-Informationen.
  -ID3(MP3), EXIF, IPTC, MS-Office, HTML.
 *Ändere Attribute und Zeitstempel von Objekte(Datei/Ordner).
  -Setze Datum und Zeit, verschiebe relativ, zufälliges Datum, kopiere zum Gleichsetzen.
 *Erstelle nummerierte Objekte(Dateien und Ordner).

----------------------------------------------------------------------------
<Installieren>
 Entpacke das ZIP-Archiv in einen beliebigen Ordner.
 Praktischerweise könnte dieser Ordner im "Programme"-Ordner sein, aber das ist egal.
 *Im Falle eines upgrade von einer alten Version,
  sogar wenn es alle Inhalte des Archiv überschreibt,
  gehen die eigenen Einstellungen nicht verloren.
 *Im Programmordner wird die "Flexible Renamer.ini" erstellt und alle Einstellungen gespeichert.
 *Im Programmordner wird auch eine Log-Datei erstellt und für Undo-zwecke benutzt.

<Enthaltene Dateien>
 Flexible Renamer.exe - das Programm
 Flexible Renamer.exe.manifest - für  WinXP-Stil
 PresetEN.ini - Einige typische Umbenennungseinstellungen usw...(English)
 PresetJA.ini - Einige typische Umbenennungseinstellungen usw..(Japanese)
 ReadMeEN.txt - Beschreibung(English)
 ReadMeJA.txt - Beschreibung(Japanese)

<Deinstallieren>
 -Nimm alle Haken bei "Extras"->"Windows Kontext-Menü" raus und starte zur Sicherheit neu.
 -Dann lösche einfach den kompletten "Flexible Renamer-Programmordner" mit allem Inhalt.

<Benutzung>
 Starte "Flexible Renamer.exe" und das Hauptfenster erscheint.

 #Wähle das Zielobjekt
  Die Objekte zur Bearbeitung werden mit einer der folgenden Methoden bestimmt.
  *Im Ordnerweise-Modus (Specify Folder Mode)
   -Wähle aus dem Dateibaum einen Ordner aus.
   -Schreibe den Pfad und Ordnernamen in die Adresszeile und drücke die ENTER-Taste.
   -"Drag & Drop" in's Fenster wird unterstützt.
   -Ein Ordner kann auch auf das Flexible Renamer-Icon gezogen werden.
   -Durch setzen der Haken unter "Extras"->"Windows Kontext-Menü" kann Flexible Renamer über das Kontext-Menü gestartet werden.
   
  *Im Einzeln-Modus (Specify File Mode)
   -Ziehe die Dateien oder Ordner aus dem Windows Explorer in's Programmfenster.
    Das ist nützlich um z.B. die Suchergebnisse des Windows Explorer umzubenennen.
   -Durch setzen der Haken unter "Extras"->"Windows Kontext-Menü" können Dateien/Ordner über "Senden an..." aufgerufen werden.


 #Umbenennen
  Schritt 1. Wähle den Zielordner.

  *im Fall des einfachen Umbenennens
   Schritt 2. Wähle die Umbenennungs Art aus der Funktionsliste.
   Schritt 3. Durch Eintrag der zu ersetzenden Zeichen(die Nummern oder Zeichen) wird das Ergebnis sofort angezeigt.
   Schritt 4. Drücke den "Umbenennen"-Knopf zum Umbenennen der Dateien.

  *im Fall der Erweiterten Funktion (advanced rename)
   Schritt 2. Wähle den gesuchten Dateinamen.
   ->Wildcard(*,?) oder Regular-Expression (Ergänzend) ist möglich.
   Schritt 3. Wähle das Format des gewünschten Ergebnisses.
   ->Wildcard(*,?) oder Regular-Expression () used with the pattern changes the part of the filename string which matches.
     can be designed to order using the matches with the \1-\9,
   ->When sequence number is desired, the '?' box may take several minutes to acquire sequence numbers.
   Step 4. Press the "Rename" button and, renaming is done.

  *direct-editing
  Can edit target name directly.
  To enter the direct-editing mode, selecting a file from preview list, and then operate each method below.
   -Click the part of replaced name.(2nd column)
   -Press F2-key
  Can rename continually the upper(lower) file by upper(lower)-arrow-key.

  Tips
   -The single byte character and multi byte character is handled as 1 letter.
   -Select and Drop the files from preview with Explorer etc. to "Rename & Copy" at another folder.
   -When we would like to revert the modification of previous file name change, press the "Undo" button.
   -When the file is right-clicked, the context menu is executed which is related to the file.
   -When the file is double-clicked, the application is executed which is related to the file.
   -When a "Recursive Sub Folder" check is removed, only the file which is the object folder becomes the object of modification.
   *Distribution into the generated folder
    Folder creation and movement / distribution is possible by using a relative path (".." and"/") by file name substitution specification by renaming processing.
    For example, the following is possible.
    -Files are moved to the folder on one, and distributed into generated folder with a certain day.
  @  ->  ../\Y-\m-\d/\0
  @  My Pictures\photo\Image001.jpg  ->  My Pictures\2003-01-15\Image001.jpg
  @  My Pictures\photo\Image002.jpg  ->  My Pictures\2003-01-15\Image002.jpg
  @  My Pictures\photo\Image003.jpg  ->  My Pictures\2003-01-15\Image003.jpg
  @  My Pictures\photo\Image004.jpg  ->  My Pictures\2003-01-16\Image004.jpg
  @  My Pictures\photo\Image005.jpg  ->  My Pictures\2003-01-17\Image005.jpg
  @  My Pictures\photo\Image006.jpg  ->  My Pictures\2003-01-17\Image006.jpg
   *Show in groups
    Right click at the header of file list, group menu appears.
    Consecutive numbers are reset by this function for every group.
    -Numbering without group
  @  -> Ex. \Y-\m-\d ??.jpg
      2003-01-15 01.jpg
      2003-01-15 02.jpg
      2003-01-15 03.jpg
      2003-01-16 04.jpg
      2003-01-17 05.jpg
      2003-01-17 06.jpg
    -Numbering without group by date
  @  -> Ex. \Y-\m-\d ??.jpg
      2003-01-15 01.jpg
      2003-01-15 02.jpg
      2003-01-15 03.jpg
      2003-01-16 01.jpg
      2003-01-17 01.jpg
      2003-01-17 02.jpg

 #TagRename
  Step 1. Select the target folder.
  Step 2. Select the target object.
  Step 3. Specify the format of results of file name.
   ->Can select and specify the available tags from "Tag List" button.
   ->Can specify the free string.
   ->When sequence number is desired, the '?' box may take several minutes to acquire sequence numbers.
   Step4. Press the "Rename" button and, renaming is done.

  Tips
   -<ID3.*> retrieves priority ID3v2. In case of use ID3v1 on purpose, specify <ID3v1.*>.
   -Supported ID3 Tag
   http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmform/htm/id3tagsupport.asp
   *Distribution into the generated folder
    Folder creation and movement / distribution is possible by using a relative path (".." and"/") by file name substitution specification by renaming processing.
    For example, the following is possible.
    -Files are distributed into generated folder with a artist name and album name.(for TagRename)
  @  ->  <ID3.Artist>/<ID3.Album>/\0
  @  My Music\Music001.mp3  ->  My Music\Artist-A\1st-Album\Music001.mp3
  @  My Music\Music002.mp3  ->  My Music\Artist-A\1st-Album\Music002.mp3
  @  My Music\Music003.mp3  ->  My Music\Artist-A\2nd-Album\Music003.mp3
  @  My Music\Music004.mp3  ->  My Music\Artist-A\2nd-Album\Music004.mp3
  @  My Music\Music005.mp3  ->  My Music\Artist-B\1st-Album\Music005.mp3
  @  My Music\Music006.mp3  ->  My Music\Artist-B\1st-Album\Music006.mp3
  @  My Music\Music007.mp3  ->  My Music\Artist-B\1st-Album\Music007.mp3
   *Tag indication
    Right click at the header of file list, menu of tag items appears below the group menu.
    Can indicate the contents of the specified tag by the list.

 #Attribute - Modify Attributes and Timestamp
  Step 1. Select the target folder.
  Step 2. Attribute and the electric time stamp which we would like to modify are set.
  (You can modify time of folder in Windows NT/2000/XP)
  Step 3. When "Start Modify" the button is pushed, modification is started concerning all files below the object folder.

  Tips
   -When "Recursive Sub Folder" check is removed, only the file which is the object folder becomes the object of modification.

 #Numbered Object - Creates Numbered objects(file/folder)
  Step 1. Select the target folder.
  Step 2. Select the type of creation.
  Step 3. Input the new objects name.
   ->Use '?' where you wish to insert sequence numbers.
  Step 4. The quantity of the object which it forms is input.
  Step 5. When "Start Create" the button is pushed, the file, or the folder is formed in the object folder.

  Tips
   -In case of plural objects, objects numbered at the position of '?' and digit equals to the number of '?'.

<Credits>
 Thanks to Dr John Maddock for the RegExp++ library.
 Thanks to Dirk Mahoney and Andreas Sigfridsson and Scott Haug for ID3Lib.

<Contact>
 For any bug or mistakes, problems, suggestions or questions, please email
 at naru@yeah.ne.jp
 Website: http://hp.vector.co.jp/authors/VA014830/

----------------------------------------------------------------------------
<Appendix>
*Regular-Expression engine: NFA algorithm

*Available Regular-Expression
 . any character
 [...] any character in the brackets.
 [^...] any character other than those in the brackets.
 \c meta character
 c ^ head of line
 $ tail of line
 \< the null string at the start of a word.
 \> the null string at the end of the word.
 \b the null string at either the start or the end of a word.
 \B a null string within a word.
 \A start of  a string
 \Z end of  a string
 | alternative
 (...) alternative brackets
 ?  zero or one(greedy),
 * zero or more(greedy),
 *+  one or more(greedy),
 *{m}  exactly m times(greedy),
 *{m,} at least m times(greedy),
 *{m,n} at least m but not more than n times(greedy)
 *??  zero or one(non-greedy),
 *?  zero or more(non-greedy),
 +?  one or more(non-greedy),
 {m}? exactly m times(non-greedy),
 {m,}? at least m times(non-greedy),
 {m,n}? at least m but not more than n times(non-greedy),
 (...)  matching pattern
 (...)  grouping
 (?:...)  exclusive grouping(non-store)
 \1-\N refer pattern
 \s a space
 \S a non-space
 \d a numeric character
 \D a non-numeric
 \w an alphanumeric character
 \W a non-alphanumeric
 \l lower-case next one
 \L lower-case next until a \E
 \u upper-case next one
 \U upper-case next until a \E
 \Q treat as a literal character until a \E
 \E terminate \U,\L\Q
 \0OO an octal character code
 \xXX a hexadecimal character code
 \x{XX} a hexadecimal character code
 \C any single character

*Unavailable Regular-Expression
 (?=...) positive ahead-search
 (?!...) negative ahead-search
 [:classname:] character-class

*original tags
@\t file title
@\e extension
@\f folder name
@\F parent folder name

*original tags(timestamp)
@\y Year without century (00 - 99)
@\Y Year with century
@\m Month (01 - 12)
@\d Day of month (01 - 31)
@\p A.M./P.M. indicator for 12-hour clock
@\H Hour in 24-hour format (00-23)
@\I Hour in 12-hour format (00-12)
@\M Minute (00 - 59)
@\S Second as decimal number (00 - 59)
@\a Abbreviated weekday name
@\A Full weekday name
@\b Abbreviated month name
@\B Full month name
@(Precedence zero will be deleted if # is attached behind \.)