<?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=SafetyCar</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=SafetyCar"/>
	<link rel="alternate" type="text/html" href="https://www.den4b.com/wiki/Special:Contributions/SafetyCar"/>
	<updated>2026-04-27T01:53:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.70_Spanish&amp;diff=2493</id>
		<title>Localization:ReNamer 5.70 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.70_Spanish&amp;diff=2493"/>
		<updated>2013-05-11T18:15:05Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.70}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.70.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Denis Kozlov=Denis Kozlov&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Website:=Sitio web:&lt;br /&gt;
##Translator##=SafetyCar&lt;br /&gt;
Translation:=Traducción:&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Version:=Versión:&lt;br /&gt;
Date:=Fecha:&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto tras aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada línea por separado&lt;br /&gt;
Line wrap=Salto automático&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que desee añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Abrir Carpetas&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
-=-&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Default behavior for adding folders:=Comportamiento al añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Añadir archivos contenidos en las carpetas&lt;br /&gt;
Add folders as files=Añadir carpetas como si fuesen archivos&lt;br /&gt;
Skip root folders when added as files=No añadir la carpeta raíz como archivo&lt;br /&gt;
Include system items=Incluir elementos de sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras:&lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe varias máscaras con &amp;quot;;&amp;quot; (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar sólo al nombre, no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Pero es sencillo de solucionar, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
*=*&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Add new rule (Ins)=Añadir regla nueva (Ins)&lt;br /&gt;
Remove=Borrar&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Supr)&lt;br /&gt;
Up=Subir&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Down=Bajar&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud de Nombre Nuevo&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo&lt;br /&gt;
New Path=Ruta Nueva&lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar manualmente&lt;br /&gt;
-=-&lt;br /&gt;
Shell=Menú contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación&lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
-=-&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
-=-&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
-=-&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar modificados (Ignorar mayús/minús)&lt;br /&gt;
-=-&lt;br /&gt;
Mark Only Selected=Marcar seleccionados&lt;br /&gt;
Mark by Mask=Marcar por Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
-=-&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar No Marcados&lt;br /&gt;
-=-&lt;br /&gt;
Clear Not Changed=Limpiar No Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
-=-&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Seleccionar por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Subir&lt;br /&gt;
Down=Bajar&lt;br /&gt;
-=-&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
-=-&lt;br /&gt;
-=-&lt;br /&gt;
-=-&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
-=-&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
-=-&lt;br /&gt;
Presets=Preferidos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
-=-&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
-=-&lt;br /&gt;
Create Links=Crear Enlaces&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help (online)=Ayuda (online)&lt;br /&gt;
Forum (online)=Foro (online)&lt;br /&gt;
Donate (online)=Donar (online)&lt;br /&gt;
-=-&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
User Manual=Manual de Usuario&lt;br /&gt;
-=-&lt;br /&gt;
-=-&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
-=-&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
-=-&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
-=-&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
-=-&lt;br /&gt;
-=-&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos&lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos sin nombres nuevos&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=Añadir Archivos&lt;br /&gt;
Add Folders=Añadir Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto&lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como&lt;br /&gt;
Manage...=Administrar...&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Export as batch renaming file (full paths)=Exportar como archivo de renombramiento por lotes (rutas completas)&lt;br /&gt;
Export as batch renaming file (only names)=Exportar como archivo de renombramiento por lotes (sólo nombres)&lt;br /&gt;
Register=Registrar&lt;br /&gt;
Unregister=Quitar registro&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas sólo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Preferido&lt;br /&gt;
Overwrite existing preset:=Sobrescribir Preferido existente:&lt;br /&gt;
Preset Name:=Nombre de Preferido:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=¿Incluir la configuración del Filtro?&lt;br /&gt;
Presets Links=Enlaces a Preferidos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los enlaces:&lt;br /&gt;
Type of links:=Acción:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Create Links=Crear Enlaces&lt;br /&gt;
Presets Manager=Administrar Preferidos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Load Preset (Enter)=Cargar Preferido (Enter)&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Duplicate Preset=Duplicar Preferido&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Rename Preset (F2)=Renombrar Preferido (F2)&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Preferido manualmente (F4)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Delete Preset (Del)=Eliminar Preferido (Supr)&lt;br /&gt;
Append=Adjuntar&lt;br /&gt;
Append Preset=Adjuntar Preferido&lt;br /&gt;
Registration=Registro&lt;br /&gt;
Please enter your registration code:=Por favor, introduzca su código de registro:&lt;br /&gt;
Register=Registrar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Corrige el orden en casos de [1, 10, 2, 20, 3, 4...]&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Sólo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only, requires a restart)=Siempre arriba (sólo ventana principal, requiere reiniciar)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, mejorará la velocidad al procesar muchos archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar&lt;br /&gt;
|=|&lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios&lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar al añadir nuevos archivos&lt;br /&gt;
Fix conflicting new names on preview=Solucionar nombres conflictivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito&lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobrescribir archivos que coincidan con los Nombres Nuevos&lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos marcados después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha:&lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos sólo se guardarán si su validación es correcta.&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar:&lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar el texto &amp;quot;Arrastre sus archivos aquí&amp;quot;:&lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar el texto &amp;quot;Haga click para añadir una regla&amp;quot;:&lt;br /&gt;
Register preset extension (*.rnp)=Asociar extensión de Preferidos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Terms of Use=Términos de uso&lt;br /&gt;
Website=Sitio web&lt;br /&gt;
Accept=Aceptar&lt;br /&gt;
Please be aware of the terms of use of this application:=Por favor, tenga en cuenta los términos de uso de esta aplicación:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación sólo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
For commercial use you must obtain a commercial license by going to the website. If you already hold a license please enter your registration code. Thank you for playing fair.=Para uso comercial usted debe obtener una licencia comercial a través del sitio web. Si ya está en posesión de licencia por favor proceda a introducir su código de registro. Gracias por jugar limpio.&lt;br /&gt;
Enter registration code=Introduzca el código de registro&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzarán las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús:&lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS&lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayús&lt;br /&gt;
ALL UPPER CASE=TODO EN MAYÚSCULA&lt;br /&gt;
Extension always upper case=Extensión siempre en mayúsculas&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios:&lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis:&lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Limpiar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.2.345&lt;br /&gt;
_=_&lt;br /&gt;
+=+&lt;br /&gt;
-=-&lt;br /&gt;
%20=%20&lt;br /&gt;
[...]=[...]&lt;br /&gt;
(...)=(...)&lt;br /&gt;
{...}={...}&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta:&lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Extensión Nueva (sin punto):&lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de Extensión Nueva será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Where:=Dónde:&lt;br /&gt;
Insert:=Insertar:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a línea (Ctrl+G)&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#cend.&lt;br /&gt;
New pattern:=Nuevo orden:&lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Expression:=Expresión:&lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Insert expression (Ctrl+Ins)=Insertar expresión (Ctrl+Ins)&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Borrar:&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Find:=Buscar:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar:&lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud:&lt;br /&gt;
Unique if possible=Único si es posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso:&lt;br /&gt;
Repeat:=Repetir:&lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo:&lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
(){}[]=(){}[]&lt;br /&gt;
!?@##$%^&amp;amp;~`_+-=!?@##$%^&amp;amp;~`_+-&lt;br /&gt;
1234567890=1234567890&lt;br /&gt;
User defined:=Personalizado:&lt;br /&gt;
Brackets:=Paréntesis:&lt;br /&gt;
Symbols:=Símbolos:&lt;br /&gt;
Digits:=Dígitos:&lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnñopqrstuvwxyz&lt;br /&gt;
English:=Inglés:&lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Alfabetos de transliteración&lt;br /&gt;
Direction:=Dirección:&lt;br /&gt;
Translit Alphabet:=Diccionario:&lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one per line):=Escribir los nombres nuevos aquí (uno por línea):&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
-=-&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Close=&amp;amp;Cerrar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
Error=Error&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
Information=Información&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
OK=OK&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
Yes to &amp;amp;All=Sí &amp;amp;a todo&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
Down=Bajar&lt;br /&gt;
Up=Subir&lt;br /&gt;
One or more of any characters=Uno o más de cualquier caracter&lt;br /&gt;
Any single character from the range (e.g. &amp;quot;a&amp;quot; to &amp;quot;z&amp;quot;)=Cualquier caracter en el rango (ej: &amp;quot;a&amp;quot; hasta &amp;quot;z&amp;quot;)&lt;br /&gt;
Any single character except the ones from the list=Cualquier caracter excepto los de la lista&lt;br /&gt;
One or more of any characters, grouped into subexpression=Uno o más de cualquier caracter, agrupados en subexpresiones&lt;br /&gt;
Start of the input text=Comienzo del texto.&lt;br /&gt;
Any single character from the list (e.g. &amp;quot;a&amp;quot; or &amp;quot;b&amp;quot; or &amp;quot;c&amp;quot;)=Cualquier caracter de la lista (ej: &amp;quot;a&amp;quot; o &amp;quot;b&amp;quot; o &amp;quot;c&amp;quot;)&lt;br /&gt;
Use an escape character to match an actual backslash &amp;quot;\&amp;quot;=Use un caracter de escape para buscar la propia barra invertida &amp;quot;\&amp;quot;&lt;br /&gt;
A set of 2 to 4 of any characters=Un grupo de 2 a 4 de cualquier caracter&lt;br /&gt;
A set of 3 or more of any characters=Un grupo de 3 o más de cualquier caracter&lt;br /&gt;
A set of 3 of any characters=Un grupo de 3 de cualquier caracter&lt;br /&gt;
One or more of any characters, but fewer as possible=Uno o más de cualquier caracter, pero tan pocos como sea posible&lt;br /&gt;
Any single space character (space, tab, new line)=Cualquier caracter de espaciado (espacio, tabulación, línea nueva)&lt;br /&gt;
Any one occurrence of the alternatives (e.g. &amp;quot;aa&amp;quot; or &amp;quot;bb&amp;quot; or &amp;quot;cc&amp;quot;)=Cualquier ocurrencia de las alternativas (ej: &amp;quot;aa&amp;quot; o &amp;quot;bb&amp;quot; o &amp;quot;cc&amp;quot;)&lt;br /&gt;
Word boundary=Limite de palabra&lt;br /&gt;
Zero or more of any characters=Cero o más de cualquier caracter&lt;br /&gt;
Any single character=Cualquier caracter&lt;br /&gt;
Any single alphanumeric character (including an underscore)=Cualquier caracter alfanumérico (incluye barra baja)&lt;br /&gt;
Exception=Excepción&lt;br /&gt;
Pascal Script Compile=Compilar Pascal Script&lt;br /&gt;
Pascal Script Execute=Ejecutar Pascal Script&lt;br /&gt;
Version Information: Comments=Información de versión: Comentarios&lt;br /&gt;
Registration code is invalid.=Código de registro es inválido.&lt;br /&gt;
Line=Línea&lt;br /&gt;
Not able to create a directory for a license file.=Incapaz de crear carpeta para el archivo de licencia.&lt;br /&gt;
Registration has been successful!=¡El registro se completo exitosamente!&lt;br /&gt;
Unknown error (check units and libraries)=Error desconocido (compruebe unidades y librerías)&lt;br /&gt;
Number of frames in GIF file=Número de fotogramas en un GIF&lt;br /&gt;
Aspect Ratio of an image=Relación de aspecto de una imagen&lt;br /&gt;
Width and Height of an image in pixels=Anchura y Altura de una imagen en pixeles&lt;br /&gt;
Failed to remove the license.=Fallo al eliminar la licencia.&lt;br /&gt;
License has been removed.=La licencia fue eliminada.&lt;br /&gt;
ID3 Track Number=ID3 Número de pista&lt;br /&gt;
AVI Duration in Minutes=AVI Duración en Minutos&lt;br /&gt;
AVI Duration in Seconds=AVI Duración en Segundos&lt;br /&gt;
AVI Duration in H:M:S format=AVI Duración en formato H:M:S&lt;br /&gt;
AVI Total amount of Frames=AVI Cantidad de fotogramas&lt;br /&gt;
Height of an image in pixels=Altura de una imagen en pixeles&lt;br /&gt;
Summary Information: Subject=Información de Resumen: Asunto&lt;br /&gt;
Summary Information: Title=Información de Resumen: Título&lt;br /&gt;
Amount of pixels in the image=Cantidad de pixeles en la imagen&lt;br /&gt;
Binary File Information: Description=Información de Archivo Binario: Descripción&lt;br /&gt;
Version Information: Product Version=Información de Versión: Producto&lt;br /&gt;
Version Information: File Version=Información de Versión: Versión de archivo&lt;br /&gt;
TIFF Date=TIFF Fecha&lt;br /&gt;
IPTC Location Name=IPTC Nombre del lugar&lt;br /&gt;
TIFF Make=TIFF Marca&lt;br /&gt;
IPTC City=IPTC Ciudad&lt;br /&gt;
TIFF Description=TIFF Descripción&lt;br /&gt;
TIFF Model=TIFF Modelo&lt;br /&gt;
FLAC Artist=FLAC Artista&lt;br /&gt;
FLAC Year=FLAC Año&lt;br /&gt;
WMA Album=WMA Álbum&lt;br /&gt;
WMA Year=WMA Año&lt;br /&gt;
FLAC Title=FLAC Título&lt;br /&gt;
WMA Track Number=WMA Número de pista&lt;br /&gt;
WMA Genre=WMA Género&lt;br /&gt;
FLAC Album=FLAC Álbum&lt;br /&gt;
ID3 Part Of Set=ID3 Parte de un grupo&lt;br /&gt;
WMA Artist=WMA Artista&lt;br /&gt;
WMA Title=WMA Título&lt;br /&gt;
Email sender=Emisor del mensaje&lt;br /&gt;
Width of an image in pixels=Anchura de una imagen en pixeles&lt;br /&gt;
AVI Dimensions in WxH format=AVI Dimensiones en Alto*Ancho&lt;br /&gt;
AVI Width in Pixels=AVI Anchura en Pixeles&lt;br /&gt;
AVI Height in Pixels=AVI Altura en Pixeles&lt;br /&gt;
AVI Video Codec=AVI Codec del video&lt;br /&gt;
Binary File Signature: Extension=Firma de Archivo Binario: Extensión&lt;br /&gt;
Duration of an Audio file=Duración de un archivo de Audio&lt;br /&gt;
FLAC Genre=FLAC Género&lt;br /&gt;
Duration of an Audio file in seconds=Duración de un archivo de Audio en segundos&lt;br /&gt;
EXIF Original Date=EXIF Fecha original&lt;br /&gt;
FLAC Track Number=FLAC Número de pista&lt;br /&gt;
Title tag extracted from an HTML file=Etiqueta de título extraída de un archivo HTML&lt;br /&gt;
Duration of an Audio file in minutes=Duración de un archivo de Audio en minutos&lt;br /&gt;
Summary Information: Number of Pages=Información de Resumen: Número de páginas&lt;br /&gt;
SHA1 Hash of a file=Hash SHA1 de un archivo&lt;br /&gt;
CRC32 Checksum of a file=Checksum CRC32 de un archivo&lt;br /&gt;
MD5 Hash of a file=Hash MD5 de un archivo&lt;br /&gt;
Summary Information: Author=Información de Resumen: Autor&lt;br /&gt;
Outlook Message ID=ID de Mensaje de Outlook&lt;br /&gt;
Outlook Message Sender=Emisor de Mensaje de Outlook&lt;br /&gt;
AVI Frames per Second=AVI Fotogramas por segundo&lt;br /&gt;
Outlook Message Subject=Asunto de Mensaje de Outlook&lt;br /&gt;
Outlook Message Date Sent =Fecha de envío de Mensaje de Outlook&lt;br /&gt;
Version Information: Company=Información de Versión: Compañía&lt;br /&gt;
Version Information: Product=Información de Versión: Producto&lt;br /&gt;
Version Information: Description=Información de Versión: Descripción&lt;br /&gt;
Version Information: Copyright=Información de Versión: Copyright&lt;br /&gt;
SHA256 Hash of a file=Hash SHA256 de un archivo&lt;br /&gt;
Email subject=Asunto de Email&lt;br /&gt;
Email date sent=Fecha de envío de Email&lt;br /&gt;
SHA512 Hash of a file=Hash SHA512 de un archivo&lt;br /&gt;
Number of computers=Número de ordenadores&lt;br /&gt;
Licensed to=Licenciado para&lt;br /&gt;
Contact name=Nombre de contacto&lt;br /&gt;
Contact email=Email de contacto&lt;br /&gt;
Failed to load the license.=Fallo al cargar la licencia.&lt;br /&gt;
Error=Error&lt;br /&gt;
License has expired.=La licencia ha caducado.&lt;br /&gt;
EXIF Image Description=EXIF Descripción de imagen&lt;br /&gt;
EXIF Camera Model=EXIF Modelo de la cámara&lt;br /&gt;
IPTC Image Caption=IPTC Captura de imagen&lt;br /&gt;
EXIF Camera Make=EXIF Marca de la cámara&lt;br /&gt;
IPTC Image Headline=IPTC Encabezado de imagen&lt;br /&gt;
IPTC Object Name=IPTC Nombre de objeto&lt;br /&gt;
(non-commercial use only)=(sólo uso no-comercial)&lt;br /&gt;
Upgrade expiry=Ampliar expiración&lt;br /&gt;
For more information please read full license code=Para más información, por favor, lea el código de licencia completo&lt;br /&gt;
License expiry=Expiración de licencia&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación sólo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
Would you like to open a Quick Guide?=¿Desea abrir un manual de guía rápida?&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
False=Falso&lt;br /&gt;
True=Verdadero&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviarán el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobrescribirlo?&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#cSeleccionado/s: %d&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
Generated by=Generado por&lt;br /&gt;
Go To Line=Ir A Línea&lt;br /&gt;
Enter the line number:=Introduzca el número de la línea:&lt;br /&gt;
You are launching ReNamer for the first time.=Estás iniciando ReNamer por primera vez.&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Preferido &amp;quot;%s&amp;quot;?&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estás seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
New Name:=Nombre Nuevo:&lt;br /&gt;
Rename Preset=Renombrar Preferido&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nombres nuevos están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para eliminar texto según su posición.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reordenarlas de nuevo.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para borrar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a líneas de texto.&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario:&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya está abierto.#cPor favor, ciérrelo antes de continuar...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Batch file=Archivo por lotes&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Line = %d, Left = %d, Right = %d=Línea = %d, Izquierda = %d, Derecha = %d&lt;br /&gt;
Line = %d, Left = %d, Right = %d, Length = %d=Línea = %d, Izquierda = %d, Derecha = %d, Longitud = %d&lt;br /&gt;
Browse Scripts...=Explorar Scripts...&lt;br /&gt;
Browse Translits...=Explorar Diccionarios...&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Mark by Mask=Marcar por Máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Overwrite=Sobrescribir&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Remove=Borrar&lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Save Script...=Guardar Script...&lt;br /&gt;
Save Translit...=Guardar Diccionario...&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Failed to apply system settings.#c#cError:=Fallo al aplicar las configuraciones del sistema.#c#cError:&lt;br /&gt;
Real-time update of the preview is very dangerous and its usage is not recommended!#c#cIt will cause graphical updates to the GUI during preview for every processed file but will also respond to any user activity like mouse clicks and keyboard button presses. Beware, any accidental actions generated during a preview as a result of user activity within the application will interfere with the preview process and can cause unpredictable behavior.=¡La actualización en tiempo real de la previsualización es muy peligrosa y no se recomienda su uso!#c#cGenerará actualizaciones gráficas en la interfaz durante la previsualización para cada archivo pero también responderá a clicks de ratón y entradas de teclado. Tenga cuidado cualquier acción accidental por actividad del usuario en la aplicación puede interferir con la previsualización y causar comportamientos inesperados.&lt;br /&gt;
Short name in the 8.3 format=Nombre corto en el formato 8.3&lt;br /&gt;
ID3 Album=ID3 Álbum&lt;br /&gt;
ID3 Genre=ID3 Género&lt;br /&gt;
File last modified date=Fecha de modificación&lt;br /&gt;
File created date=Fecha de creación&lt;br /&gt;
Current Date=Fecha actual&lt;br /&gt;
Size of file in MB=Tamaño de archivo en MB&lt;br /&gt;
Size of file in bytes=Tamaño de archivo en Bytes&lt;br /&gt;
ID3 Title=ID3 Título&lt;br /&gt;
ID3 Year=ID3 Año&lt;br /&gt;
Full path of the file=Ruta completa del archivo&lt;br /&gt;
ID3 Artist=ID3 Artista&lt;br /&gt;
Extension of the file=Extensión del archivo&lt;br /&gt;
Base name of the file=Nombre base del archivo&lt;br /&gt;
Name of the parent folder=Nombre de la carpeta padre&lt;br /&gt;
Full name of the file=Nombre completo del archivo&lt;br /&gt;
Size of file in KB=Tamaño de archivo en KB&lt;br /&gt;
This operation is not valid because the current image contains no valid header.=La imagen no contiene un encabezado válido.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.70_Spanish&amp;diff=2492</id>
		<title>Localization:ReNamer 5.70 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.70_Spanish&amp;diff=2492"/>
		<updated>2013-05-11T18:12:41Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.70}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.70.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Denis Kozlov=Denis Kozlov&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Website:=Sitio web:&lt;br /&gt;
##Translator##=SafetyCar&lt;br /&gt;
Translation:=Traducción:&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Version:=Versión:&lt;br /&gt;
Date:=Fecha:&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto tras aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada línea por separado&lt;br /&gt;
Line wrap=Salto automático&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que desee añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Abrir Carpetas&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
-=-&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Default behavior for adding folders:=Comportamiento al añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Añadir archivos contenidos en las carpetas&lt;br /&gt;
Add folders as files=Añadir carpetas como si fuesen archivos&lt;br /&gt;
Skip root folders when added as files=No añadir la carpeta raíz como archivo&lt;br /&gt;
Include system items=Incluir elementos de sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras:&lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe varias máscaras con “;” (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar sólo al nombre, no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Pero es sencillo de solucionar, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
*=*&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Add new rule (Ins)=Añadir regla nueva (Ins)&lt;br /&gt;
Remove=Borrar&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Supr)&lt;br /&gt;
Up=Subir&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Down=Bajar&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud de Nombre Nuevo&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo&lt;br /&gt;
New Path=Ruta Nueva&lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar manualmente&lt;br /&gt;
-=-&lt;br /&gt;
Shell=Menú contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación&lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
-=-&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
-=-&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
-=-&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar modificados (Ignorar mayús/minús)&lt;br /&gt;
-=-&lt;br /&gt;
Mark Only Selected=Marcar seleccionados&lt;br /&gt;
Mark by Mask=Marcar por Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
-=-&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar No Marcados&lt;br /&gt;
-=-&lt;br /&gt;
Clear Not Changed=Limpiar No Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
-=-&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Seleccionar por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Subir&lt;br /&gt;
Down=Bajar&lt;br /&gt;
-=-&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
-=-&lt;br /&gt;
-=-&lt;br /&gt;
-=-&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
-=-&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
-=-&lt;br /&gt;
Presets=Preferidos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
-=-&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
-=-&lt;br /&gt;
Create Links=Crear Enlaces&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help (online)=Ayuda (online)&lt;br /&gt;
Forum (online)=Foro (online)&lt;br /&gt;
Donate (online)=Donar (online)&lt;br /&gt;
-=-&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
User Manual=Manual de Usuario&lt;br /&gt;
-=-&lt;br /&gt;
-=-&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
-=-&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
-=-&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
-=-&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
-=-&lt;br /&gt;
-=-&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos&lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos sin nombres nuevos&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=Añadir Archivos&lt;br /&gt;
Add Folders=Añadir Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto&lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como&lt;br /&gt;
Manage...=Administrar...&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Export as batch renaming file (full paths)=Exportar como archivo de renombramiento por lotes (rutas completas)&lt;br /&gt;
Export as batch renaming file (only names)=Exportar como archivo de renombramiento por lotes (sólo nombres)&lt;br /&gt;
Register=Registrar&lt;br /&gt;
Unregister=Quitar registro&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas sólo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Preferido&lt;br /&gt;
Overwrite existing preset:=Sobrescribir Preferido existente:&lt;br /&gt;
Preset Name:=Nombre de Preferido:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=¿Incluir la configuración del Filtro?&lt;br /&gt;
Presets Links=Enlaces a Preferidos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los enlaces:&lt;br /&gt;
Type of links:=Acción:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Create Links=Crear Enlaces&lt;br /&gt;
Presets Manager=Administrar Preferidos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Load Preset (Enter)=Cargar Preferido (Enter)&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Duplicate Preset=Duplicar Preferido&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Rename Preset (F2)=Renombrar Preferido (F2)&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Preferido manualmente (F4)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Delete Preset (Del)=Eliminar Preferido (Supr)&lt;br /&gt;
Append=Adjuntar&lt;br /&gt;
Append Preset=Adjuntar Preferido&lt;br /&gt;
Registration=Registro&lt;br /&gt;
Please enter your registration code:=Por favor, introduzca su código de registro:&lt;br /&gt;
Register=Registrar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Corrige el orden en casos de [1, 10, 2, 20, 3, 4...]&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Sólo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only, requires a restart)=Siempre arriba (sólo ventana principal, requiere reiniciar)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, mejorará la velocidad al procesar muchos archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar&lt;br /&gt;
|=|&lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios&lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar al añadir nuevos archivos&lt;br /&gt;
Fix conflicting new names on preview=Solucionar nombres conflictivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito&lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobrescribir archivos que coincidan con los Nombres Nuevos&lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos marcados después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha:&lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos sólo se guardarán si su validación es correcta.&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar:&lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar el texto &amp;quot;Arrastre sus archivos aquí&amp;quot;:&lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar el texto &amp;quot;Haga click para añadir una regla&amp;quot;:&lt;br /&gt;
Register preset extension (*.rnp)=Asociar extensión de Preferidos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Terms of Use=Términos de uso&lt;br /&gt;
Website=Sitio web&lt;br /&gt;
Accept=Aceptar&lt;br /&gt;
Please be aware of the terms of use of this application:=Por favor, tenga en cuenta los términos de uso de esta aplicación:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación sólo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
For commercial use you must obtain a commercial license by going to the website. If you already hold a license please enter your registration code. Thank you for playing fair.=Para uso comercial usted debe obtener una licencia comercial a través del sitio web. Si ya está en posesión de licencia por favor proceda a introducir su código de registro. Gracias por jugar limpio.&lt;br /&gt;
Enter registration code=Introduzca el código de registro&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzarán las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús:&lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS&lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayús&lt;br /&gt;
ALL UPPER CASE=TODO EN MAYÚSCULA&lt;br /&gt;
Extension always upper case=Extensión siempre en mayúsculas&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios:&lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis:&lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Limpiar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.2.345&lt;br /&gt;
_=_&lt;br /&gt;
+=+&lt;br /&gt;
-=-&lt;br /&gt;
%20=%20&lt;br /&gt;
[...]=[...]&lt;br /&gt;
(...)=(...)&lt;br /&gt;
{...}={...}&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta:&lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Extensión Nueva (sin punto):&lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de Extensión Nueva será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Where:=Dónde:&lt;br /&gt;
Insert:=Insertar:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a línea (Ctrl+G)&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#cend.&lt;br /&gt;
New pattern:=Nuevo orden:&lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Expression:=Expresión:&lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Insert expression (Ctrl+Ins)=Insertar expresión (Ctrl+Ins)&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Borrar:&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Find:=Buscar:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar:&lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud:&lt;br /&gt;
Unique if possible=Único si es posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso:&lt;br /&gt;
Repeat:=Repetir:&lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo:&lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
(){}[]=(){}[]&lt;br /&gt;
!?@##$%^&amp;amp;~`_+-=!?@##$%^&amp;amp;~`_+-&lt;br /&gt;
1234567890=1234567890&lt;br /&gt;
User defined:=Personalizado:&lt;br /&gt;
Brackets:=Paréntesis:&lt;br /&gt;
Symbols:=Símbolos:&lt;br /&gt;
Digits:=Dígitos:&lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnñopqrstuvwxyz&lt;br /&gt;
English:=Inglés:&lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Alfabetos de transliteración&lt;br /&gt;
Direction:=Dirección:&lt;br /&gt;
Translit Alphabet:=Diccionario:&lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one per line):=Escribir los nombres nuevos aquí (uno por línea):&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
-=-&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Close=&amp;amp;Cerrar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
Error=Error&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
Information=Información&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
OK=OK&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
Yes to &amp;amp;All=Sí &amp;amp;a todo&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
Down=Bajar&lt;br /&gt;
Up=Subir&lt;br /&gt;
One or more of any characters=Uno o más de cualquier caracter&lt;br /&gt;
Any single character from the range (e.g. &amp;quot;a&amp;quot; to &amp;quot;z&amp;quot;)=Cualquier caracter en el rango (ej: &amp;quot;a&amp;quot; hasta &amp;quot;z&amp;quot;)&lt;br /&gt;
Any single character except the ones from the list=Cualquier caracter excepto los de la lista&lt;br /&gt;
One or more of any characters, grouped into subexpression=Uno o más de cualquier caracter, agrupados en subexpresiones&lt;br /&gt;
Start of the input text=Comienzo del texto.&lt;br /&gt;
Any single character from the list (e.g. &amp;quot;a&amp;quot; or &amp;quot;b&amp;quot; or &amp;quot;c&amp;quot;)=Cualquier caracter de la lista (ej: &amp;quot;a&amp;quot; o &amp;quot;b&amp;quot; o &amp;quot;c&amp;quot;)&lt;br /&gt;
Use an escape character to match an actual backslash &amp;quot;&amp;quot;=Use un caracter de escape para buscar la propia barra invertida &amp;quot;&amp;quot;&lt;br /&gt;
A set of 2 to 4 of any characters=Un grupo de 2 a 4 de cualquier caracter&lt;br /&gt;
A set of 3 or more of any characters=Un grupo de 3 o más de cualquier caracter&lt;br /&gt;
A set of 3 of any characters=Un grupo de 3 de cualquier caracter&lt;br /&gt;
One or more of any characters, but fewer as possible=Uno o más de cualquier caracter, pero tan pocos como sea posible&lt;br /&gt;
Any single space character (space, tab, new line)=Cualquier caracter de espaciado (espacio, tabulación, línea nueva)&lt;br /&gt;
Any one occurrence of the alternatives (e.g. &amp;quot;aa&amp;quot; or &amp;quot;bb&amp;quot; or &amp;quot;cc&amp;quot;)=Cualquier ocurrencia de las alternativas (ej: &amp;quot;aa&amp;quot; o &amp;quot;bb&amp;quot; o &amp;quot;cc&amp;quot;)&lt;br /&gt;
Word boundary=Limite de palabra&lt;br /&gt;
Zero or more of any characters=Cero o más de cualquier caracter&lt;br /&gt;
Any single character=Cualquier caracter&lt;br /&gt;
Any single alphanumeric character (including an underscore)=Cualquier caracter alfanumérico (incluye barra baja)&lt;br /&gt;
Exception=Excepción&lt;br /&gt;
Pascal Script Compile=Compilar Pascal Script&lt;br /&gt;
Pascal Script Execute=Ejecutar Pascal Script&lt;br /&gt;
Version Information: Comments=Información de versión: Comentarios&lt;br /&gt;
Registration code is invalid.=Código de registro es inválido.&lt;br /&gt;
Line=Línea&lt;br /&gt;
Not able to create a directory for a license file.=Incapaz de crear carpeta para el archivo de licencia.&lt;br /&gt;
Registration has been successful!=¡El registro se completo exitosamente!&lt;br /&gt;
Unknown error (check units and libraries)=Error desconocido (compruebe unidades y librerías)&lt;br /&gt;
Number of frames in GIF file=Número de fotogramas en un GIF&lt;br /&gt;
Aspect Ratio of an image=Relación de aspecto de una imagen&lt;br /&gt;
Width and Height of an image in pixels=Anchura y Altura de una imagen en pixeles&lt;br /&gt;
Failed to remove the license.=Fallo al eliminar la licencia.&lt;br /&gt;
License has been removed.=La licencia fue eliminada.&lt;br /&gt;
ID3 Track Number=ID3 Número de pista&lt;br /&gt;
AVI Duration in Minutes=AVI Duración en Minutos&lt;br /&gt;
AVI Duration in Seconds=AVI Duración en Segundos&lt;br /&gt;
AVI Duration in H:M:S format=AVI Duración en formato H:M:S&lt;br /&gt;
AVI Total amount of Frames=AVI Cantidad de fotogramas&lt;br /&gt;
Height of an image in pixels=Altura de una imagen en pixeles&lt;br /&gt;
Summary Information: Subject=Información de Resumen: Asunto&lt;br /&gt;
Summary Information: Title=Información de Resumen: Título&lt;br /&gt;
Amount of pixels in the image=Cantidad de pixeles en la imagen&lt;br /&gt;
Binary File Information: Description=Información de Archivo Binario: Descripción&lt;br /&gt;
Version Information: Product Version=Información de Versión: Producto&lt;br /&gt;
Version Information: File Version=Información de Versión: Versión de archivo&lt;br /&gt;
TIFF Date=TIFF Fecha&lt;br /&gt;
IPTC Location Name=IPTC Nombre del lugar&lt;br /&gt;
TIFF Make=TIFF Marca&lt;br /&gt;
IPTC City=IPTC Ciudad&lt;br /&gt;
TIFF Description=TIFF Descripción&lt;br /&gt;
TIFF Model=TIFF Modelo&lt;br /&gt;
FLAC Artist=FLAC Artista&lt;br /&gt;
FLAC Year=FLAC Año&lt;br /&gt;
WMA Album=WMA Álbum&lt;br /&gt;
WMA Year=WMA Año&lt;br /&gt;
FLAC Title=FLAC Título&lt;br /&gt;
WMA Track Number=WMA Número de pista&lt;br /&gt;
WMA Genre=WMA Género&lt;br /&gt;
FLAC Album=FLAC Álbum&lt;br /&gt;
ID3 Part Of Set=ID3 Parte de un grupo&lt;br /&gt;
WMA Artist=WMA Artista&lt;br /&gt;
WMA Title=WMA Título&lt;br /&gt;
Email sender=Emisor del mensaje&lt;br /&gt;
Width of an image in pixels=Anchura de una imagen en pixeles&lt;br /&gt;
AVI Dimensions in WxH format=AVI Dimensiones en Alto*Ancho&lt;br /&gt;
AVI Width in Pixels=AVI Anchura en Pixeles&lt;br /&gt;
AVI Height in Pixels=AVI Altura en Pixeles&lt;br /&gt;
AVI Video Codec=AVI Codec del video&lt;br /&gt;
Binary File Signature: Extension=Firma de Archivo Binario: Extensión&lt;br /&gt;
Duration of an Audio file=Duración de un archivo de Audio&lt;br /&gt;
FLAC Genre=FLAC Género&lt;br /&gt;
Duration of an Audio file in seconds=Duración de un archivo de Audio en segundos&lt;br /&gt;
EXIF Original Date=EXIF Fecha original&lt;br /&gt;
FLAC Track Number=FLAC Número de pista&lt;br /&gt;
Title tag extracted from an HTML file=Etiqueta de título extraída de un archivo HTML&lt;br /&gt;
Duration of an Audio file in minutes=Duración de un archivo de Audio en minutos&lt;br /&gt;
Summary Information: Number of Pages=Información de Resumen: Número de páginas&lt;br /&gt;
SHA1 Hash of a file=Hash SHA1 de un archivo&lt;br /&gt;
CRC32 Checksum of a file=Checksum CRC32 de un archivo&lt;br /&gt;
MD5 Hash of a file=Hash MD5 de un archivo&lt;br /&gt;
Summary Information: Author=Información de Resumen: Autor&lt;br /&gt;
Outlook Message ID=ID de Mensaje de Outlook&lt;br /&gt;
Outlook Message Sender=Emisor de Mensaje de Outlook&lt;br /&gt;
AVI Frames per Second=AVI Fotogramas por segundo&lt;br /&gt;
Outlook Message Subject=Asunto de Mensaje de Outlook&lt;br /&gt;
Outlook Message Date Sent =Fecha de envío de Mensaje de Outlook&lt;br /&gt;
Version Information: Company=Información de Versión: Compañía&lt;br /&gt;
Version Information: Product=Información de Versión: Producto&lt;br /&gt;
Version Information: Description=Información de Versión: Descripción&lt;br /&gt;
Version Information: Copyright=Información de Versión: Copyright&lt;br /&gt;
SHA256 Hash of a file=Hash SHA256 de un archivo&lt;br /&gt;
Email subject=Asunto de Email&lt;br /&gt;
Email date sent=Fecha de envío de Email&lt;br /&gt;
SHA512 Hash of a file=Hash SHA512 de un archivo&lt;br /&gt;
Number of computers=Número de ordenadores&lt;br /&gt;
Licensed to=Licenciado para&lt;br /&gt;
Contact name=Nombre de contacto&lt;br /&gt;
Contact email=Email de contacto&lt;br /&gt;
Failed to load the license.=Fallo al cargar la licencia.&lt;br /&gt;
Error=Error&lt;br /&gt;
License has expired.=La licencia ha caducado.&lt;br /&gt;
EXIF Image Description=EXIF Descripción de imagen&lt;br /&gt;
EXIF Camera Model=EXIF Modelo de la cámara&lt;br /&gt;
IPTC Image Caption=IPTC Captura de imagen&lt;br /&gt;
EXIF Camera Make=EXIF Marca de la cámara&lt;br /&gt;
IPTC Image Headline=IPTC Encabezado de imagen&lt;br /&gt;
IPTC Object Name=IPTC Nombre de objeto&lt;br /&gt;
(non-commercial use only)=(sólo uso no-comercial)&lt;br /&gt;
Upgrade expiry=Ampliar expiración&lt;br /&gt;
For more information please read full license code=Para más información, por favor, lea el código de licencia completo&lt;br /&gt;
License expiry=Expiración de licencia&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación sólo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
Would you like to open a Quick Guide?=¿Desea abrir un manual de guía rápida?&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
False=Falso&lt;br /&gt;
True=Verdadero&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviarán el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobrescribirlo?&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#cSeleccionado/s: %d&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
Generated by=Generado por&lt;br /&gt;
Go To Line=Ir A Línea&lt;br /&gt;
Enter the line number:=Introduzca el número de la línea:&lt;br /&gt;
You are launching ReNamer for the first time.=Estás iniciando ReNamer por primera vez.&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Preferido &amp;quot;%s&amp;quot;?&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estás seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
New Name:=Nombre Nuevo:&lt;br /&gt;
Rename Preset=Renombrar Preferido&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nombres nuevos están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para eliminar texto según su posición.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reordenarlas de nuevo.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para borrar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a líneas de texto.&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario:&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya está abierto.#cPor favor, ciérrelo antes de continuar...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Batch file=Archivo por lotes&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Line = %d, Left = %d, Right = %d=Línea = %d, Izquierda = %d, Derecha = %d&lt;br /&gt;
Line = %d, Left = %d, Right = %d, Length = %d=Línea = %d, Izquierda = %d, Derecha = %d, Longitud = %d&lt;br /&gt;
Browse Scripts...=Explorar Scripts...&lt;br /&gt;
Browse Translits...=Explorar Diccionarios...&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Mark by Mask=Marcar por Máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Overwrite=Sobrescribir&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Remove=Borrar&lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Save Script...=Guardar Script...&lt;br /&gt;
Save Translit...=Guardar Diccionario...&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Failed to apply system settings.#c#cError:=Fallo al aplicar las configuraciones del sistema.#c#cError:&lt;br /&gt;
Real-time update of the preview is very dangerous and its usage is not recommended!#c#cIt will cause graphical updates to the GUI during preview for every processed file but will also respond to any user activity like mouse clicks and keyboard button presses. Beware, any accidental actions generated during a preview as a result of user activity within the application will interfere with the preview process and can cause unpredictable behavior.=¡La actualización en tiempo real de la previsualización es muy peligrosa y no se recomienda su uso!#c#cGenerará actualizaciones gráficas en la interfaz durante la previsualización para cada archivo pero también responderá a clicks de ratón y entradas de teclado. Tenga cuidado cualquier acción accidental por actividad del usuario en la aplicación puede interferir con la previsualización y causar comportamientos inesperados.&lt;br /&gt;
Short name in the 8.3 format=Nombre corto en el formato 8.3&lt;br /&gt;
ID3 Album=ID3 Álbum&lt;br /&gt;
ID3 Genre=ID3 Género&lt;br /&gt;
File last modified date=Fecha de modificación&lt;br /&gt;
File created date=Fecha de creación&lt;br /&gt;
Current Date=Fecha actual&lt;br /&gt;
Size of file in MB=Tamaño de archivo en MB&lt;br /&gt;
Size of file in bytes=Tamaño de archivo en Bytes&lt;br /&gt;
ID3 Title=ID3 Título&lt;br /&gt;
ID3 Year=ID3 Año&lt;br /&gt;
Full path of the file=Ruta completa del archivo&lt;br /&gt;
ID3 Artist=ID3 Artista&lt;br /&gt;
Extension of the file=Extensión del archivo&lt;br /&gt;
Base name of the file=Nombre base del archivo&lt;br /&gt;
Name of the parent folder=Nombre de la carpeta padre&lt;br /&gt;
Full name of the file=Nombre completo del archivo&lt;br /&gt;
Size of file in KB=Tamaño de archivo en KB&lt;br /&gt;
This operation is not valid because the current image contains no valid header.=La imagen no contiene un encabezado válido.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization_Old_2013&amp;diff=2480</id>
		<title>Localization Old 2013</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization_Old_2013&amp;diff=2480"/>
		<updated>2013-04-21T20:58:34Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article describes localization/translation of the software, please read it all carefully before attempting to participate.&lt;br /&gt;
&lt;br /&gt;
== Translation guide ==&lt;br /&gt;
&lt;br /&gt;
You can create a translation to any (your) language using notepad or any other text editor. Steps are simple:&lt;br /&gt;
&lt;br /&gt;
# Register on the [http://www.den4b.com/wiki/ Wiki] or [http://www.den4b.com/forum/ Forum] and notify that you are performing a translation.&lt;br /&gt;
#* Please create a &amp;quot;work in progress&amp;quot; entry in the [[#Localized files|localized files]] section, or post on the Forum.&lt;br /&gt;
# Open a text file containing all translatable text from one of the [[#Localization files|localization files]].&lt;br /&gt;
# Translate provided text, separating original and translated text with &amp;quot;=&amp;quot; (equal sign).&lt;br /&gt;
#* Try to match the length of the translated text with the length of the original text.&lt;br /&gt;
#* Some components may not fit longer text, so it is better to make it shorter rather than longer.&lt;br /&gt;
#* &#039;&#039;&#039;Beware of the special formatting and symbols, make sure to maintain it, translate only actual words.&#039;&#039;&#039;&lt;br /&gt;
# Save the text file using Unicode (UTF-8) encoding and share your work:&lt;br /&gt;
#* Upload your work to the [http://www.den4b.com/wiki/ Wiki] or post it on [http://www.den4b.com/forum/ Forum].&lt;br /&gt;
#* Notify the [http://www.den4b.com/forum/profile.php?id=2 Author] and/or [http://www.den4b.com/forum/profile.php?id=755 eR@SeR] using built-in e-mail option of the Forum.&lt;br /&gt;
&lt;br /&gt;
Here is an example of translated text:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
About=О Программе&lt;br /&gt;
Author:=Автор:&lt;br /&gt;
Clear rules list on rename=Очистить список правил при переименовании&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Линия #3D %d, Слева #3D %d, Справа #3D %d&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beware that future versions of applications could bring more untranslated text, so old translations will need to be updated.&lt;br /&gt;
&lt;br /&gt;
== Localization files ==&lt;br /&gt;
&lt;br /&gt;
Here is a list of files which are the basis for translations. Translate the appropriate text (as described above) and upload it as a localized file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Application&lt;br /&gt;
! Version&lt;br /&gt;
|-&lt;br /&gt;
| ReNamer&lt;br /&gt;
| [[Localization:ReNamer 5.60|5.60]], [[Localization:ReNamer 5.70|5.70]]&lt;br /&gt;
|-&lt;br /&gt;
| Shutter&lt;br /&gt;
| file to be uploaded...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localized files ==&lt;br /&gt;
&lt;br /&gt;
Here is a list of localized files. Translations which can be used for compiling localized versions of software.&lt;br /&gt;
&lt;br /&gt;
* If you are planning on doing a translation, please, check that the target language doesn&#039;t already exist.&lt;br /&gt;
* Before starting a translation process, please create a &amp;quot;work in progress&amp;quot; entry, noting the target language and your name (link to your profile), so other people are aware of your work.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name/File&lt;br /&gt;
! Authors&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| [[Localization:ReNamer 5.60 Serbian|ReNamer 5.60 Serbian]]&lt;br /&gt;
| [http://www.den4b.com/forum/profile.php?id=755 eR@SeR]&lt;br /&gt;
| [http://www.den4b.com/?x=get&amp;amp;product=renamer&amp;amp;type=file&amp;amp;file=ReNamer-5.60-Serbian.zip Complete]&lt;br /&gt;
|-&lt;br /&gt;
| [[Localization:ReNamer 5.60 Spanish|ReNamer 5.60 Spanish]]&lt;br /&gt;
| [http://www.den4b.com/forum/profile.php?id=793 SafetyCar]&lt;br /&gt;
| [http://www.den4b.com/?x=get&amp;amp;product=renamer&amp;amp;type=file&amp;amp;file=ReNamer-5.60-Spanish.zip Complete]&lt;br /&gt;
|-&lt;br /&gt;
| [[Localization:ReNamer 5.60 French|ReNamer 5.60 French]]&lt;br /&gt;
| [http://www.den4b.com/forum/profile.php?id=680 Ozzii]&lt;br /&gt;
| [http://www.den4b.com/?x=get&amp;amp;product=renamer&amp;amp;type=file&amp;amp;file=ReNamer-5.60-French.zip Complete]&lt;br /&gt;
|-&lt;br /&gt;
| [[Localization:ReNamer 5.70 Serbian|ReNamer 5.70 Serbian]]&lt;br /&gt;
| [http://www.den4b.com/forum/profile.php?id=755 eR@SeR]&lt;br /&gt;
| In progress...&lt;br /&gt;
|-&lt;br /&gt;
| [[Localization:ReNamer 5.70 Spanish|ReNamer 5.70 Spanish]]&lt;br /&gt;
| [http://www.den4b.com/forum/profile.php?id=793 SafetyCar]&lt;br /&gt;
| In progress...&lt;br /&gt;
|-&lt;br /&gt;
| [[Localization:ReNamer 5.70 French|ReNamer 5.70 French]]&lt;br /&gt;
| ?&lt;br /&gt;
| In progress...&lt;br /&gt;
|-&lt;br /&gt;
| (Your translation)&lt;br /&gt;
| &lt;br /&gt;
| In progress...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Side notes ==&lt;br /&gt;
&lt;br /&gt;
As of this moment, there is no easy way to create translations. Translations can only be created with specialized programs like: [http://www.sisulizer.com/ Sisulizer], [http://www.bome.com/Restorator/ Restorator], [http://www.multilizer.com/ Multilizer], etc - none of which are free. With a use of such software all translatable text from an executable can be exported to a text file, later translated and imported back into the software, creating a localized (translated) version of the executable.&lt;br /&gt;
&lt;br /&gt;
Discussions regarding translations on forum:&lt;br /&gt;
* [http://www.den4b.com/forum/viewtopic.php?id=242 Different languages and localization]&lt;br /&gt;
* [http://www.den4b.com/forum/viewtopic.php?id=37 ReNamer - translatable]&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2298</id>
		<title>Localization:ReNamer 5.60 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2298"/>
		<updated>2011-12-20T20:46:51Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Extra spaces to highlight parts to be reviewed by eR@SeR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.60}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.60.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Web:=Web:&lt;br /&gt;
License:=Licencia:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación solo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
##Translator##=Traducción: SafetyCar&lt;br /&gt;
Version=Versión&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto trás aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada linea por separado&lt;br /&gt;
Line wrap=Salto automático&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que dese añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Abrir Carpetas&lt;br /&gt;
Filter Settings=Opciones de filtrado&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir a la carpeta&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Default behavior for adding folders:=Comportamiento al añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Añadir archivos contenidos en las carpetas&lt;br /&gt;
Add folders as files=Añadir carpetas como si fuesen archivos&lt;br /&gt;
Skip root folders when added as files=No añadir la carpeta raíz como archivo&lt;br /&gt;
Include system items=Incluir elementos de sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras: &lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe varias máscaras con “;” (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar solo al nombre, no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Pero es sencillo de solucionar, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add new rule (Ins)=Añadir nueva regla (Ins)&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Supr)&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Up=Subir&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Down=Bajar&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo &lt;br /&gt;
New Path=Ruta Nueva &lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud del Nuevo Nombre&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Click here to add a rule=Click para añadir una nueva regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar manualmente&lt;br /&gt;
Shell=Menú contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación &lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar solo modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar solo modificados (Ignorar mayús/minús)&lt;br /&gt;
Mark Only Selected=Marcar solo los seleccionados&lt;br /&gt;
Mark by Mask=Marcar mediante Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar No Marcados&lt;br /&gt;
Clear Not Changed=Limpiar No Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Seleccionar por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Subir&lt;br /&gt;
Down=Bajar&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
Presets=Preferidos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
Create Links=Crear enlaces&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Forum=Foro&lt;br /&gt;
Donate=Donar&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos &lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos sin nombres nuevos&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=Abrir Archivos&lt;br /&gt;
Add Folders=Abrir Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto &lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como...&lt;br /&gt;
Manage...=Administrar&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas solo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Preferido&lt;br /&gt;
Overwrite existing preset:=Sobreescribir Preferido existente:&lt;br /&gt;
Preset Name:=Nombre de Preferido:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=Incluir la configuración del Filtro&lt;br /&gt;
Presets Links=Enlaces a Preferidos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los enlaces:&lt;br /&gt;
Type of links:=Acción:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta “Enviar a”&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Create Links=Crear Enlaces&lt;br /&gt;
Presets Manager=Administrar Preferidos&lt;br /&gt;
Load Preset (Enter)=Cargar Preferido (Enter)&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Duplicate Preset=Duplicar Preferido&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Rename Preset (F2)=Renombrar Preferido (F2)&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Preferido manualmente (F4)&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Delete Preset (Del)=Eliminar Preferido (Supr)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Append Preset=Adjuntar Preferido&lt;br /&gt;
Append=Adjuntar&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Corrige el orden en casos de [1, 10, 2, 20, 3, 4...]&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Solo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only)=Siempre al frente (Solo ventana principal)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales &lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Warning: real-time update of the preview is very dangerous and its usage is not recommended!=AVISO: ¡La actualización en tiempo real es muy peligrosa y no se recomienda su uso!&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, mejorará la velocidad al procesar muchos archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar &lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios &lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar al añadir nuevos archivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito &lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobreescribir archivos que coincidan con los Nombres Nuevos &lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos marcados después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha: &lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos solo se guardaran si su validación es correcta. &lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar: &lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar texto &amp;quot;Arrastre sus archivos aquí&amp;quot;: &lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar texto &amp;quot;Haga click para añadir una regla&amp;quot;: &lt;br /&gt;
Register preset extension (*.rnp)=Asociar extensión de Preferidos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzaran las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús: &lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS &lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayús&lt;br /&gt;
ALL UPPER CASE=TODO EN MÁYUSCULA&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios: &lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis: &lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Limpiar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.2.345&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde: &lt;br /&gt;
Delimiter:=Delimitador: &lt;br /&gt;
Position:=Posición: &lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta: &lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar: &lt;br /&gt;
Delimiter:=Delimitador: &lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Nueva extensión (sin punto): &lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de nueva extensión será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Where:=Dónde: &lt;br /&gt;
Insert:=Insertar: &lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición: &lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a linea (Ctrl+G)&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#c#lend.&lt;br /&gt;
New pattern:=Orden nuevo: &lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto &lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar: &lt;br /&gt;
Expression:=Expresión: &lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Eliminar: &lt;br /&gt;
Occurrences:=Coincidencias: &lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias: &lt;br /&gt;
Replace:=Reemplazar: &lt;br /&gt;
Find:=Buscar: &lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar: &lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud: &lt;br /&gt;
Unique if possible=Único si es posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso: &lt;br /&gt;
Repeat:=Repetir: &lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición: &lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo: &lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
User defined:=Personalizado:&lt;br /&gt;
Brackets:=Paréntesis: &lt;br /&gt;
Symbols:=Símbolos: &lt;br /&gt;
Digits:=Dígitos: &lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
English:=Inglés: &lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Diccionarios de transliteración &lt;br /&gt;
Direction:=Dirección: &lt;br /&gt;
Translit Alphabet:=Diccionario: &lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one-per-line):=Escriba los nuevos nombres aquí (uno por línea): &lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Abort=&amp;amp;Abort&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
Yes to &amp;amp;All=Sí $a todo&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
Error=Error&lt;br /&gt;
Information=Información&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres: &lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Save Script...=Guardar Script&lt;br /&gt;
Browse Scripts...=Explorar Scripts&lt;br /&gt;
Browse Translits...=Explorar Diccionarios&lt;br /&gt;
Save Translit...=Guardar Diccionario&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Overwrite=Sobreescribir&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d, Length #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d, Longitud #3D %d&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Mark by Mask=Marcar por máscara&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a lineas de texto.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reonrdenarlas de nuevo.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Remove=Borrar &lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#Seleccionado/s: %d&lt;br /&gt;
Go To Line=Ir A Linea&lt;br /&gt;
Enter the line number:=Introduzca el número de la linea: &lt;br /&gt;
You are launching ReNamer for the first time.#c#cWould you like to open a Quick Guide?=Es la primera vez que abres el programa.#c#c¿Te gustaría abrir una Guía Rápida?&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
True=Verdadero&lt;br /&gt;
False=Falso&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para eliminar texto según su posición.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para borrar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviaran el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
New Name:=Nombre Nuevo: &lt;br /&gt;
Rename Preset=Renombrar Preferido&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobreescribirlo?&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario: &lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Preferido &amp;quot;%s&amp;quot;?&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estas seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya esta abierto.#cPor favor, ciérrelo antes de continuar.&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nuevos nombres están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2297</id>
		<title>Localization:ReNamer 5.60 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2297"/>
		<updated>2011-12-15T19:38:23Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.60}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.60.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Web:=Web:&lt;br /&gt;
License:=Licencia:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación solo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
##Translator##=SafetyCar&lt;br /&gt;
Version=Versión&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto trás aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada linea por separado&lt;br /&gt;
Line wrap=Salto automático&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que dese añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Carpetas&lt;br /&gt;
Filter Settings=Opciones de filtrado&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir a la carpeta&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Default behavior for adding folders:=Comportamiento al añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Añadir archivos contenidos en las carpetas&lt;br /&gt;
Add folders as files=Añadir carpetas como si fuesen archivos&lt;br /&gt;
Skip root folders when added as files=No añadir la carpeta raíz como archivo&lt;br /&gt;
Include system items=Incluir elementos de sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras:&lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe varias máscaras con “;” (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar solo al nombre, no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Pero es sencillo de solucionar, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add new rule (Ins)=Añadir nueva regla (Ins)&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Supr)&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Up=Subir&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Down=Bajar&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo&lt;br /&gt;
New Path=Ruta Nueva&lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud del Nuevo Nombre&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Click here to add a rule=Click para añadir una nueva regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar manualmente&lt;br /&gt;
Shell=Menú contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación&lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar solo modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar solo modificados (Ignorar mayús/minús)&lt;br /&gt;
Mark Only Selected=Marcar solo los seleccionados&lt;br /&gt;
Mark by Mask=Marcar mediante Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar No Marcados&lt;br /&gt;
Clear Not Changed=Limpiar No Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Seleccionar por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Subir&lt;br /&gt;
Down=Bajar&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
Presets=Preferidos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
Create Links=Crear enlaces&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Forum=Foro&lt;br /&gt;
Donate=Donar&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos&lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos sin nombres nuevos&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=+Archivos&lt;br /&gt;
Add Folders=+Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto&lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como...&lt;br /&gt;
Manage...=Administrar&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas solo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Preferido&lt;br /&gt;
Overwrite existing preset:=Sobreescribir Preferido existente:&lt;br /&gt;
Preset Name:=Nombre de Preferido:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=Incluir la configuración del Filtro&lt;br /&gt;
Presets Links=Enlaces a Preferidos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los enlaces:&lt;br /&gt;
Type of links:=Acción:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta “Enviar a”&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Create Links=Crear Enlaces&lt;br /&gt;
Presets Manager=Administrar Preferidos&lt;br /&gt;
Load Preset (Enter)=Cargar Preferido (Enter)&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Duplicate Preset=Duplicar Preferido&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Rename Preset (F2)=Renombrar Preferido (F2)&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Preferido manualmente (F4)&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Delete Preset (Del)=Eliminar Preferido (Supr)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Append Preset=Adjuntar Preferido&lt;br /&gt;
Append=Adjuntar&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Corrige el orden en casos de [1, 10, 2, 20, 3, 4...]&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Solo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only)=Siempre al frente (Solo ventana principal)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Warning: real-time update of the preview is very dangerous and its usage is not recommended!=AVISO: ¡La actualización en tiempo real es muy peligrosa y no se recomienda su uso!&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, la velocidad aumentará al procesar grandes cantidades de archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar&lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios&lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar al añadir nuevos archivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito&lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobreescribir archivos que coincidan con los Nombres Nuevos&lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos marcados después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha:&lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos solo se guardaran si su validación es correcta.&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar:&lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar texto &amp;quot;Arrastre sus archivos aquí&amp;quot;:&lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar texto &amp;quot;Haga click para añadir una regla&amp;quot;:&lt;br /&gt;
Register preset extension (*.rnp)=Asociar extensión de Preferidos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzaran las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús:&lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS &lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayús&lt;br /&gt;
ALL UPPER CASE=TODO EN MÁYUSCULA&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios:&lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis:&lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Limpiar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.2.345&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta:&lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Nueva extensión (sin punto):&lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de nueva extensión será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Where:=Dónde:&lt;br /&gt;
Insert:=Insertar:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a linea (Ctrl+G)&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#c#lend.&lt;br /&gt;
New pattern:=Orden nuevo:&lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Expression:=Expresión:&lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Eliminar:&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Find:=Buscar:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar:&lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud:&lt;br /&gt;
Unique if possible=Único si es posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso:&lt;br /&gt;
Repeat:=Repetir:&lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo:&lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
User defined:=Personalizado:&lt;br /&gt;
Brackets:=Paréntesis:&lt;br /&gt;
Symbols:=Símbolos:&lt;br /&gt;
Digits:=Dígitos:&lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
English:=Inglés:&lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Diccionarios de transliteración&lt;br /&gt;
Direction:=Dirección:&lt;br /&gt;
Translit Alphabet:=Diccionario:&lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one-per-line):=Escriba los nuevos nombres aquí (uno por línea):&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Abort=&amp;amp;Abort&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
Yes to &amp;amp;All=Sí $a todo&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
Error=Error&lt;br /&gt;
Information=Información&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres:&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Save Script...=Guardar Script&lt;br /&gt;
Browse Scripts...=Explorar Scripts&lt;br /&gt;
Browse Translits...=Explorar Diccionarios&lt;br /&gt;
Save Translit...=Guardar Diccionario&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Overwrite=Sobreescribir&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d, Length #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d, Longitud #3D %d&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Mark by Mask=Marcar por máscara&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a lineas de texto.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reonrdenarlas de nuevo.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Remove=Borrar &lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#Seleccionado/s: %d&lt;br /&gt;
Go To Line=Ir A Linea&lt;br /&gt;
Enter the line number:=Introduzca el número de la linea:&lt;br /&gt;
You are launching ReNamer for the first time.#c#cWould you like to open a Quick Guide?=Es la primera vez que abres el programa.#c#c¿Te gustaría abrir una Guía Rápida?&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
True=Verdadero&lt;br /&gt;
False=Falso&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para borrar texto según su posición.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para eliminar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviaran el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
New Name:=Nombre Nuevo:&lt;br /&gt;
Rename Preset=Renombrar Preferido&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobreescribirlo?&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Preferido &amp;quot;%s&amp;quot;?&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estas seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya esta abierto.#cPor favor, ciérrelo antes de continuar.&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nuevos nombres están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2295</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=2295"/>
		<updated>2011-11-28T12:25:22Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Trying to clarify RegEx functions&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 &#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;
== 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;
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;
{|&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;
{|&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;
== 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 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;
| 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.&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;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;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>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2279</id>
		<title>Localization:ReNamer 5.60 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2279"/>
		<updated>2011-11-15T20:58:23Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.60}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.60.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Web:=Web:&lt;br /&gt;
License:=Licencia:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación solo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
##Translator##=SafetyCar&lt;br /&gt;
Version=Versión&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Introduzca el texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto tras aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada linea por separado&lt;br /&gt;
Line wrap=Ajuste de linea&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que dese añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Carpetas&lt;br /&gt;
Filter Settings=Opciones de filtrado&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir a la carpeta&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Default behavior for adding folders:=Comportamiento al añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Buscar archivos dentro de las carpetas&lt;br /&gt;
Add folders as files=Añadir carpetas como si fuesen archivos&lt;br /&gt;
Skip root folders when added as files=No añadir la carpeta raíz como archivo&lt;br /&gt;
Include system items=Incluir elementos de sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras:&lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe múltiples máscaras mediante “;” (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar solo al nombre, no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Pero es sencillo de solucionar, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add new rule (Ins)=Añadir nueva regla (Ins)&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Supr)&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo&lt;br /&gt;
New Path=Ruta Nueva&lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud del Nuevo Nombre&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar Nombre Nuevo&lt;br /&gt;
Shell=Menú contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación&lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar solo modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar solo modificados (Ignorar mayús/minús)&lt;br /&gt;
Mark Only Selected=Marcar solo los seleccionados&lt;br /&gt;
Mark by Mask=Marcar mediante Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar No Marcados&lt;br /&gt;
Clear Not Changed=Limpiar No Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Seleccionar por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
Presets=Preferidos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
Create Links=Crear enlaces&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Forum=Foro&lt;br /&gt;
Donate=Donar&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos&lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos sin nombres nuevos&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=+Archivos&lt;br /&gt;
Add Folders=+Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto&lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como...&lt;br /&gt;
Manage...=Administrar&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas solo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Preferido&lt;br /&gt;
Overwrite existing preset:=Sobreescribir Preferido existente:&lt;br /&gt;
Preset Name:=Nombre de Preferido:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=Incluir la configuración del Filtro&lt;br /&gt;
Presets Links=Enlaces a Preferidos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los enlaces:&lt;br /&gt;
Type of links:=Acción:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta “Enviar a”&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Create Links=Crear Enlaces&lt;br /&gt;
Presets Manager=Administrar Preferidos&lt;br /&gt;
Load Preset (Enter)=Cargar Preferido (Enter)&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Duplicate Preset=Duplicar Preferido&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Rename Preset (F2)=Renombrar Preferido (F2)&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Preferido manualmente (F4)&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Delete Preset (Del)=Eliminar Preferido (Supr)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Append Preset=Adjuntar Preferido&lt;br /&gt;
Append=Adjuntar&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Por ejemplo: a1, a2, ...a10, ...a100, ...étc.&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Solo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir, y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only)=Siempre al frente (Solo ventana principal)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Warning: real-time update of the preview is very dangerous and its usage is not recommended!=AVISO: ¡La actualización en tiempo real es muy peligrosa y no se recomienda su uso!&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, la velocidad aumentará al procesar grandes cantidades de archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar&lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar automáticamente cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios&lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar automáticamente al añadir nuevos archivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito&lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobreescribir archivos que coincidan con los Nombres Nuevos&lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha:&lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos solo se guardaran si su validación es correcta.&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar:&lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar texto &amp;quot;Arrastre sus archivos aquí&amp;quot;:&lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar texto &amp;quot;Haga click para añadir una regla&amp;quot;:&lt;br /&gt;
Register preset extension (*.rnp)=Asociar extensión de Preferidos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzaran las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para las palabras:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús:&lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS &lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayúscula&lt;br /&gt;
ALL UPPER CASE=TODO EN MÁYUSCULA&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios:&lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis:&lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Reparar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.23.45&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta:&lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Nueva extensión (sin punto):&lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de nueva extensión será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Where:=Dónde:&lt;br /&gt;
Insert:=Insertar:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a linea (Ctrl+G)&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#c#lend.&lt;br /&gt;
New pattern:=Orden nuevo:&lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Expression:=Expresión:&lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Eliminar:&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Find:=Buscar:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar:&lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud:&lt;br /&gt;
Unique if possible=Único si posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso:&lt;br /&gt;
Repeat:=Repetir:&lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo:&lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
User defined:=Definido por usuario:&lt;br /&gt;
Brackets:=Paréntesis:&lt;br /&gt;
Symbols:=Símbolos:&lt;br /&gt;
Digits:=Dígitos:&lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
English:=Inglés:&lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Diccionarios de transliteración&lt;br /&gt;
Direction:=Dirección:&lt;br /&gt;
Translit Alphabet:=Diccionario:&lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one-per-line):=Escriba los nuevos nombres aquí (uno por línea):&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Abort=&amp;amp;Abort&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
Yes to &amp;amp;All=Sí $a todo&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
Error=Error&lt;br /&gt;
Information=Información&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres:&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Save Script...=Guardar Script&lt;br /&gt;
Browse Scripts...=Explorar Scripts&lt;br /&gt;
Browse Translits...=Explorar Diccionarios&lt;br /&gt;
Save Translit...=Guardar Diccionario&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Overwrite=Sobreescribir&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d, Length #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d, Longitud #3D %d&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Mark by Mask=Marcar por máscara&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a lineas de texto.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reonrdenarlas de nuevo.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Delete=Borrar&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#Seleccionado/s: %d&lt;br /&gt;
Go To Line=Ir A Linea&lt;br /&gt;
Enter the line number:=Introduzca el número de la linea:&lt;br /&gt;
You are launching ReNamer for the first time.#c#cWould you like to open a Quick Guide?=Es la primera vez que abres el programa.#c#c¿Te gustaría abrir una Guía Rápida?&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
True=Verdadero&lt;br /&gt;
False=Falso&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para borrar texto según su posición.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para eliminar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviaran el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
New Name:=Nombre Nuevo:&lt;br /&gt;
Rename Preset=Renombrar Preferido&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobreescribirlo?&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Preferido &amp;quot;%s&amp;quot;?&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estas seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya esta abierto.#cPor favor, ciérrelo antes de continuar.&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nuevos nombres están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2277</id>
		<title>Localization:ReNamer 5.60 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2277"/>
		<updated>2011-11-14T10:31:42Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.60}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.60.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Web:=Web:&lt;br /&gt;
License:=Licencia:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación solo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
##Translator##=SafetyCar&lt;br /&gt;
Version=Versión&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Introduzca el texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto tras aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada linea por separado&lt;br /&gt;
Line wrap=Ajuste de linea&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que dese añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Carpetas&lt;br /&gt;
Filter Settings=Opciones de filtrado&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir a la carpeta&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Default behavior for adding folders:=Comportamiento al añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Buscar archivos dentro de las carpetas&lt;br /&gt;
Add folders as files=Añadir carpetas como si fuesen archivos&lt;br /&gt;
Skip root folders when added as files=No añadir la carpeta raíz como archivo&lt;br /&gt;
Include system items=Incluir elementos de sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras:&lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe múltiples máscaras mediante “;” (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar solo al nombre, no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Pero es sencillo de solucionar, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add new rule (Ins)=Añadir nueva regla (Ins)&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Supr)&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo&lt;br /&gt;
New Path=Ruta Nueva&lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud del Nuevo Nombre&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar Nombre Nuevo&lt;br /&gt;
Shell=Menú contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación&lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcas&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar solo modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar solo modificados (Ignorar mayús/minús)&lt;br /&gt;
Mark Only Selected=Marcar solo los seleccionados&lt;br /&gt;
Mark by Mask=Marcar mediante Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar No Marcados&lt;br /&gt;
Clear Not Changed=Limpiar No Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Seleccionar por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
Presets=Preferidos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
Create Links=Crear enlaces&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Forum=Foro&lt;br /&gt;
Donate=Donar&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos&lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos sin nombres nuevos&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=+Archivos&lt;br /&gt;
Add Folders=+Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto&lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como...&lt;br /&gt;
Manage...=Administrar&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas solo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Preferido&lt;br /&gt;
Overwrite existing preset:=Sobreescribir Preferido existente:&lt;br /&gt;
Preset Name:=Nombre de Preferido:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=Incluir la configuración del Filtro&lt;br /&gt;
Presets Links=Enlaces a Preferidos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los enlaces:&lt;br /&gt;
Type of links:=Acción:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta “Enviar a”&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Create Links=Crear Enlaces&lt;br /&gt;
Presets Manager=Administrar Preferidos&lt;br /&gt;
Load Preset (Enter)=Cargar  Preferido (Enter)&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Duplicate Preset=Duplicar Preferido&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Rename Preset (F2)=Renombrar Preferido (F2)&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Preferido manualmente (F4)&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Delete Preset (Del)=Eliminar Preferido (Supr)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Append Preset=Adjuntar Preferido&lt;br /&gt;
Append=Adjuntar&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Por ejemplo: a1, a2, ...a10, ...a100, ...étc.&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Solo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir, y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only)=Siempre al frente (Solo ventana principal)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Warning: real-time update of the preview is very dangerous and its usage is not recommended!=AVISO: ¡La actualización en tiempo real es muy peligrosa y no se recomienda su uso!&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, la velocidad aumentará al procesar grandes cantidades de archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar&lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar automáticamente cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios&lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar automáticamente al añadir nuevos archivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito&lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobreescribir archivos que coincidan con los Nombres Nuevos&lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha:&lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos solo se guardaran si su validación es correcta.&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar:&lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar texto &amp;quot;Arrastre sus archivos aquí&amp;quot;:&lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar texto &amp;quot;Haga click para añadir una regla&amp;quot;:&lt;br /&gt;
Register preset extension (*.rnp)=Asociar extensión de Preferidos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzaran las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para las palabras:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús:&lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS &lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayúscula&lt;br /&gt;
ALL UPPER CASE=TODO EN MÁYUSCULA&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios:&lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis:&lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Reparar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.23.45&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta:&lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Nueva extensión (sin punto):&lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de nueva extensión será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Where:=Dónde:&lt;br /&gt;
Insert:=Insertar:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a linea (Ctrl+G)&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#c#lend.&lt;br /&gt;
New pattern:=Orden nuevo:&lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Expression:=Expresión:&lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Eliminar:&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Find:=Buscar:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar:&lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud:&lt;br /&gt;
Unique if possible=Único si posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso:&lt;br /&gt;
Repeat:=Repetir:&lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo:&lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
User defined:=Definido por usuario:&lt;br /&gt;
Brackets:=Paréntesis:&lt;br /&gt;
Symbols:=Símbolos:&lt;br /&gt;
Digits:=Dígitos:&lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
English:=Inglés:&lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Diccionarios de transliteración&lt;br /&gt;
Direction:=Dirección:&lt;br /&gt;
Translit Alphabet:=Diccionario:&lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one-per-line):=Escriba los nuevos nombres aquí (uno por línea):&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Abort=&amp;amp;Abort&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
Yes to &amp;amp;All=Sí $a todo&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
Error=Error&lt;br /&gt;
Information=Información&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres:&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Load with Preset=Cargar solamente&lt;br /&gt;
Rename with Preset=Renombrar directamente&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Save Script...=Guardar Script&lt;br /&gt;
Browse Scripts...=Explorar Scripts&lt;br /&gt;
Browse Translits...=Explorar Diccionarios&lt;br /&gt;
Save Translit...=Guardar Diccionario&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Overwrite=Sobreescribir&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d, Length #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d, Longitud #3D %d&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Mark by Mask=Marcar por máscara&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a lineas de texto.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reonrdenarlas de nuevo.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Delete=Borrar&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#Seleccionado/s: %d&lt;br /&gt;
Go To Line=Ir A Linea&lt;br /&gt;
Enter the line number:=Introduzca el número de la linea:&lt;br /&gt;
You are launching ReNamer for the first time.#c#cWould you like to open a Quick Guide?=Es la primera vez que abres el programa.#c#c¿Te gustaría abrir una Guía Rápida?&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
True=Verdadero&lt;br /&gt;
False=Falso&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para borrar texto según su posición.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para eliminar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviaran el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
New Name:=Nombre Nuevo:&lt;br /&gt;
Rename Preset=Renombrar Preferido&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobreescribirlo?&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Preferido &amp;quot;%s&amp;quot;?&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el Preferido &amp;quot;%s&amp;quot;!&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estas seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya esta abierto.#cPor favor, ciérrelo antes de continuar.&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nuevos nombres están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2269</id>
		<title>Localization:ReNamer 5.60 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2269"/>
		<updated>2011-11-08T10:37:22Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.60}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.60.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Web:=Web:&lt;br /&gt;
License:=Licencia:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación solo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
##Translator##=SafetyCar&lt;br /&gt;
Version=Versión&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Introduzca el texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto tras aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada linea por separado&lt;br /&gt;
Line wrap=Ajuste de linea&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que dese añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Carpetas&lt;br /&gt;
Filter Settings=Opciones de filtrado&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir a la carpeta&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Default behavior for adding folders:=Comportamiento al añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Buscar archivos dentro de las carpetas&lt;br /&gt;
Add folders as files=Añadir carpetas como si fuesen archivos&lt;br /&gt;
Skip root folders when added as files=No añadir la carpeta raíz como archivo&lt;br /&gt;
Include system items=Incluir elementos de sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras:&lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe múltiples máscaras mediante “;” (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar solo al nombre, no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Pero es sencillo de solucionar, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add new rule (Ins)=Añadir nueva regla (Ins)&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Suprimir)&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo&lt;br /&gt;
New Path=Ruta Nueva&lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud del Nuevo Nombre&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar Nombre Nuevo&lt;br /&gt;
Shell=Menú contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación&lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcas&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar solo modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar solo modificados (Ignorar mayús/minús)&lt;br /&gt;
Mark Only Selected=Marcar solo los seleccionados&lt;br /&gt;
Mark by Mask=Marcar mediante Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar No Marcados&lt;br /&gt;
Clear Not Changed=Limpiar No Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Seleccionar por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
Presets=Favoritos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
Create Links=Crear accesos directos&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Forum=Foro&lt;br /&gt;
Donate=Donar&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos&lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos sin nombres nuevos&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=+Archivos&lt;br /&gt;
Add Folders=+Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto&lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como...&lt;br /&gt;
Manage...=Administrar&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas solo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Favorito&lt;br /&gt;
Overwrite existing preset:=Sobreescribir favorito existente:&lt;br /&gt;
Preset Name:=Nombre de Favorito:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=¿Guardar Filtros con el Favorito?&lt;br /&gt;
Presets Links=Accesos directos a Favoritos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los accesos directos:&lt;br /&gt;
Type of links:=Tipo de accesos directos:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta “Enviar a”&lt;br /&gt;
Load with Preset=Cargar Favorito&lt;br /&gt;
Rename with Preset=Renombrar con Favorito&lt;br /&gt;
Create Links=Crear Accesos Directos&lt;br /&gt;
Presets Manager=Administrador de Favoritos&lt;br /&gt;
Load Preset (Enter)=Cargar Favorito (Enter)&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Duplicate Preset=Duplicar Favorito&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Rename Preset (F2)=Renombrar Favorito&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Favorito manualmente&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Delete Preset (Del)=Eliminar Favorito (Supr)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Append Preset=Añadir Favorito&lt;br /&gt;
Append=Añadir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Por ejemplo: a1, a2, ...a10, ...a100, ...étc.&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Solo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir, y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only)=Siempre al frente (Solo ventana principal)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Warning: real-time update of the preview is very dangerous and its usage is not recommended!=AVISO: ¡La actualización en tiempo real es muy peligrosa y no se recomienda su uso!&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, la velocidad aumentará al procesar grandes cantidades de archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar&lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar automáticamente cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios&lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar automáticamente al añadir nuevos archivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito&lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobreescribir archivos que coincidan con los Nombres Nuevos&lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha:&lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos solo se guardaran si su validación es correcta.&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar:&lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar texto &amp;quot;Arrastre sus archivos aquí&amp;quot;:&lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar texto &amp;quot;Haga click para añadir una regla&amp;quot;:&lt;br /&gt;
Register preset extension (*.rnp)=Asociar la extensión de Favoritos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzaran las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para las palabras:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús:&lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS &lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayúscula&lt;br /&gt;
ALL UPPER CASE=TODO EN MÁYUSCULA&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios:&lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis:&lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Reparar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.23.45&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta:&lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Nueva extensión (sin punto):&lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de nueva extensión será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Where:=Dónde:&lt;br /&gt;
Insert:=Insertar:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a linea (Ctrl+G)&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#c#lend.&lt;br /&gt;
New pattern:=Orden nuevo:&lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Expression:=Expresión:&lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Eliminar:&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Find:=Buscar:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar:&lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud:&lt;br /&gt;
Unique if possible=Único si posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso:&lt;br /&gt;
Repeat:=Repetir:&lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo:&lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
User defined:=Definido por usuario:&lt;br /&gt;
Brackets:=Paréntesis:&lt;br /&gt;
Symbols:=Símbolos:&lt;br /&gt;
Digits:=Dígitos:&lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
English:=Inglés:&lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Diccionarios de transliteración&lt;br /&gt;
Direction:=Dirección:&lt;br /&gt;
Translit Alphabet:=Diccionario:&lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one-per-line):=Escriba los nuevos nombres aquí (uno por línea):&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Abort=&amp;amp;Abort&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
Yes to &amp;amp;All=Sí $a todo&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
Error=Error&lt;br /&gt;
Information=Información&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres:&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Load with Preset=Cargar con Favorito&lt;br /&gt;
Rename with Preset=Renombrar con Favorito&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Save Script...=Guardar Script&lt;br /&gt;
Browse Scripts...=Explorar Scripts&lt;br /&gt;
Browse Translits...=Explorar Diccionarios&lt;br /&gt;
Save Translit...=Guardar Diccionario&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Overwrite=Sobreescribir&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d, Length #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d, Longitud #3D %d&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Mark by Mask=Marcar por máscara&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a lineas de texto.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reonrdenarlas de nuevo.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Delete=Borrar&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#Seleccionado/s: %d&lt;br /&gt;
Go To Line=Ir A Linea&lt;br /&gt;
Enter the line number:=Introduzca el número de la linea:&lt;br /&gt;
You are launching ReNamer for the first time.#c#cWould you like to open a Quick Guide?=Es la primera vez que abres el programa.#c#c¿Te gustaría abrir una Guía Rápida?&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
True=Verdadero&lt;br /&gt;
False=Falso&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para borrar texto según su posición.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para eliminar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviaran el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
New Name:=Nombre Nuevo:&lt;br /&gt;
Rename Preset=Renombrar Favorito&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobreescribirlo?&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Favorito &amp;quot;%s&amp;quot;?&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estas seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya esta abierto.#cPor favor, ciérrelo antes de continuar.&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nuevos nombres están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2268</id>
		<title>Localization:ReNamer 5.60 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2268"/>
		<updated>2011-11-08T10:25:41Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.60}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.60.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Web:=Web:&lt;br /&gt;
License:=Licencia:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación solo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
##Translator##=SafetyCar&lt;br /&gt;
Version=Versión&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Introduzca el texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto tras aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada linea por separado&lt;br /&gt;
Line wrap=Ajuste de linea&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que dese añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Carpetas&lt;br /&gt;
Filter Settings=Opciones de filtrado&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir a la carpeta&lt;br /&gt;
Filter Settings=Opciones de Filtros&lt;br /&gt;
Default behavior for adding folders:=Comportamiento al añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Buscar archivos dentro de las carpetas&lt;br /&gt;
Add folders as files=Añadir carpetas como si fuesen archivos&lt;br /&gt;
Skip root folders when added as files=No añadir la carpeta raíz como archivo&lt;br /&gt;
Include system items=Incluir elementos de sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras:&lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe múltiples máscaras mediante “;” (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar solo al nombre, no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Pero es sencillo de solucionar, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add new rule (Ins)=Añadir nueva regla (Ins)&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Suprimir)&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo&lt;br /&gt;
New Path=Ruta Nueva&lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud del Nuevo Nombre&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar Nombre Nuevo&lt;br /&gt;
Shell=Menú contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación&lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcas&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar solo modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar solo modificados (Ignorar mayús/minús)&lt;br /&gt;
Mark Only Selected=Marcar solo los seleccionados&lt;br /&gt;
Mark by Mask=Marcar mediante Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar No Marcados&lt;br /&gt;
Clear Not Changed=Limpiar No Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Seleccionar por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
Presets=Favoritos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
Create Links=Crear accesos directos&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Forum=Foro&lt;br /&gt;
Donate=Donar&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos&lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos y rutas iniciales&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=+Archivos&lt;br /&gt;
Add Folders=+Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto&lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como...&lt;br /&gt;
Manage...=Administrar&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas solo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Favorito&lt;br /&gt;
Overwrite existing preset:=Sobreescribir favorito existente:&lt;br /&gt;
Preset Name:=Nombre de Favorito:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=¿Guardar Filtros con el Favorito?&lt;br /&gt;
Presets Links=Accesos directos a Favoritos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los accesos directos:&lt;br /&gt;
Type of links:=Tipo de accesos directos:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta “Enviar a”&lt;br /&gt;
Load with Preset=Cargar Favorito&lt;br /&gt;
Rename with Preset=Renombrar con Favorito&lt;br /&gt;
Create Links=Crear Accesos Directos&lt;br /&gt;
Presets Manager=Administrador de Favoritos&lt;br /&gt;
Load Preset (Enter)=Cargar Favorito (Enter)&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Duplicate Preset=Duplicar Favorito&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Rename Preset (F2)=Renombrar Favorito&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Favorito manualmente&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Delete Preset (Del)=Eliminar Favorito (Supr)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Append Preset=Añadir Favorito&lt;br /&gt;
Append=Añadir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Por ejemplo: a1, a2, ...a10, ...a100, ...étc.&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Solo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir, y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only)=Siempre al frente (Solo ventana principal)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Warning: real-time update of the preview is very dangerous and its usage is not recommended!=AVISO: ¡La actualización en tiempo real es muy peligrosa y no se recomienda su uso!&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, la velocidad aumentará al procesar grandes cantidades de archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar&lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar automáticamente cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios&lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar automáticamente al añadir nuevos archivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito&lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobreescribir archivos que coincidan con los Nombres Nuevos&lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha:&lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos solo se guardaran si su validación es correcta.&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar:&lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar texto &amp;quot;Arrastre sus archivos aquí&amp;quot;:&lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar texto &amp;quot;Haga click para añadir una regla&amp;quot;:&lt;br /&gt;
Register preset extension (*.rnp)=Asociar la extensión de Favoritos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzaran las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para las palabras:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús:&lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS &lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayúscula&lt;br /&gt;
ALL UPPER CASE=TODO EN MÁYUSCULA&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios:&lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis:&lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Reparar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.23.45&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta:&lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Nueva extensión (sin punto):&lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de nueva extensión será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Where:=Dónde:&lt;br /&gt;
Insert:=Insertar:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a linea (Ctrl+G)&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#c#lend.&lt;br /&gt;
New pattern:=Orden nuevo:&lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Expression:=Expresión:&lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Eliminar:&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Find:=Buscar:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar:&lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud:&lt;br /&gt;
Unique if possible=Único si posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso:&lt;br /&gt;
Repeat:=Repetir:&lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo:&lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
User defined:=Definido por usuario:&lt;br /&gt;
Brackets:=Paréntesis:&lt;br /&gt;
Symbols:=Símbolos:&lt;br /&gt;
Digits:=Dígitos:&lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
English:=Inglés:&lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Diccionarios de transliteración&lt;br /&gt;
Direction:=Dirección:&lt;br /&gt;
Translit Alphabet:=Diccionario:&lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one-per-line):=Escriba los nuevos nombres aquí (uno por línea):&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Abort=&amp;amp;Abort&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
Yes to &amp;amp;All=Sí $a todo&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
Error=Error&lt;br /&gt;
Information=Información&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres:&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Load with Preset=Cargar con Favorito&lt;br /&gt;
Rename with Preset=Renombrar con Favorito&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Save Script...=Guardar Script&lt;br /&gt;
Browse Scripts...=Explorar Scripts&lt;br /&gt;
Browse Translits...=Explorar Diccionarios&lt;br /&gt;
Save Translit...=Guardar Diccionario&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Overwrite=Sobreescribir&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d, Length #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d, Longitud #3D %d&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Mark by Mask=Marcar por máscara&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a lineas de texto.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reonrdenarlas de nuevo.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Delete=Borrar&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#Seleccionado/s: %d&lt;br /&gt;
Go To Line=Ir A Linea&lt;br /&gt;
Enter the line number:=Introduzca el número de la linea:&lt;br /&gt;
You are launching ReNamer for the first time.#c#cWould you like to open a Quick Guide?=Es la primera vez que abres el programa.#c#c¿Te gustaría abrir una Guía Rápida?&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
True=Verdadero&lt;br /&gt;
False=Falso&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para borrar texto según su posición.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para eliminar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviaran el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
New Name:=Nombre Nuevo:&lt;br /&gt;
Rename Preset=Renombrar Favorito&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobreescribirlo?&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Favorito &amp;quot;%s&amp;quot;?&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estas seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya esta abierto.#cPor favor, ciérrelo antes de continuar.&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nuevos nombres están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization_Old_2013&amp;diff=2258</id>
		<title>Localization Old 2013</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization_Old_2013&amp;diff=2258"/>
		<updated>2011-11-06T08:51:01Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This article describes localization/translation of the software, please read it all carefully before attempting to participate.&lt;br /&gt;
&lt;br /&gt;
== Translation guide ==&lt;br /&gt;
&lt;br /&gt;
You can create a translation to any (your) language using notepad or any other text editor. Steps are simple:&lt;br /&gt;
&lt;br /&gt;
# Register on the [http://www.den4b.com/wiki/ Wiki] or [http://www.den4b.com/forum/ Forum] and notify that you are performing a translation.&lt;br /&gt;
#* Please create a &amp;quot;work in progress&amp;quot; entry in the [[#Localized files|localized files]] section, or post on the Forum.&lt;br /&gt;
# Open a text file containing all translatable text from one of the [[#Localization files|localization files]].&lt;br /&gt;
# Translate provided text, separating original and translated text with &amp;quot;=&amp;quot; (equal sign).&lt;br /&gt;
# Beware of the special formatting and symbols, make sure to maintain it, translate only actual words.&lt;br /&gt;
# Save the text file using Unicode (UTF-8) encoding and share your work:&lt;br /&gt;
#* Upload your work to the [http://www.den4b.com/wiki/ Wiki] or post it on [http://www.den4b.com/forum/ Forum].&lt;br /&gt;
#* Notify the [http://www.den4b.com/forum/profile.php?id=2 Author] and/or [http://www.den4b.com/forum/profile.php?id=755 eR@SeR] using built-in e-mail option of the Forum.&lt;br /&gt;
&lt;br /&gt;
Here is an example of translated text:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
About=О Программе&lt;br /&gt;
Author:=Автор:&lt;br /&gt;
Clear rules list on rename=Очистить список правил при переименовании&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Линия #3D %d, Слева #3D %d, Справа #3D %d&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beware that future versions of applications could bring more untranslated text, so old translations will need to be updated.&lt;br /&gt;
&lt;br /&gt;
== Localization files ==&lt;br /&gt;
&lt;br /&gt;
Here is a list of files which are the basis for translations. Translate the appropriate text (as described above) and upload it as a localized file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Application&lt;br /&gt;
! File&lt;br /&gt;
|-&lt;br /&gt;
| ReNamer&lt;br /&gt;
| [[Localization:ReNamer 5.60|ReNamer 5.60]]&lt;br /&gt;
|-&lt;br /&gt;
| Shutter&lt;br /&gt;
| file to be uploaded...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localized files ==&lt;br /&gt;
&lt;br /&gt;
Here is a list of localized files. Translations which can be used for compiling localized versions of software.&lt;br /&gt;
&lt;br /&gt;
* If you are planning on doing a translation, please, check that the target language doesn&#039;t already exist.&lt;br /&gt;
* Before starting a translation process, please create a &amp;quot;work in progress&amp;quot; entry, noting the target language and your name (link to your profile), so other people are aware of your work.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name/File&lt;br /&gt;
! Authors&lt;br /&gt;
! Status&lt;br /&gt;
|-&lt;br /&gt;
| ReNamer 5.60 Serbian&lt;br /&gt;
| [http://www.den4b.com/forum/profile.php?id=755 eR@SeR]&lt;br /&gt;
| [[Localization:ReNamer 5.60 Serbian|Complete]]&lt;br /&gt;
|-&lt;br /&gt;
| ReNamer 5.60 Spanish&lt;br /&gt;
| [http://www.den4b.com/forum/profile.php?id=793 SafetyCar]&lt;br /&gt;
| [[Localization:ReNamer 5.60 Spanish|Complete]]&lt;br /&gt;
|-&lt;br /&gt;
| (Your translation)&lt;br /&gt;
| &lt;br /&gt;
| In progress...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Side notes ==&lt;br /&gt;
&lt;br /&gt;
As of this moment, there is no easy way to create translations. Translations can only be created with specialized programs like: [http://www.sisulizer.com/ Sisulizer], [http://www.bome.com/Restorator/ Restorator], [http://www.multilizer.com/ Multilizer], etc - none of which are free. With a use of such software all translatable text from an executable can be exported to a text file, later translated and imported back into the software, creating a localized (translated) version of the executable.&lt;br /&gt;
&lt;br /&gt;
Discussions regarding translations on forum:&lt;br /&gt;
* [http://www.den4b.com/forum/viewtopic.php?id=242 Different languages and localization]&lt;br /&gt;
* [http://www.den4b.com/forum/viewtopic.php?id=37 ReNamer - translatable]&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2257</id>
		<title>Localization:ReNamer 5.60 Spanish</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization:ReNamer_5.60_Spanish&amp;diff=2257"/>
		<updated>2011-11-06T08:43:18Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Created page with &amp;quot;{{Go|up=Localization|prev=Localization:ReNamer 5.60}}  Spanish translation for ReNamer 5.60.  &amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt; About=Acerca de Author:=Autor: Email:=Email: ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Go|up=Localization|prev=Localization:ReNamer 5.60}}&lt;br /&gt;
&lt;br /&gt;
Spanish translation for [[ReNamer]] 5.60.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:pre-wrap&amp;quot;&amp;gt;&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Author:=Autor:&lt;br /&gt;
Email:=Email:&lt;br /&gt;
Web:=Web:&lt;br /&gt;
License:=Licencia:&lt;br /&gt;
This application can be used and distributed ONLY for non-commercial purposes and with appropriate attributions.=Esta aplicación solo se podrá usar y distribuir para fines NO comerciales salvo licencia apropiada.&lt;br /&gt;
##Translator##=SafetyCar&lt;br /&gt;
Version=Versión&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Configuration:=Configuración:&lt;br /&gt;
Description=Descripción&lt;br /&gt;
Analyze=Analizar&lt;br /&gt;
Enter text that you wish to analyze:=Introduzca el texto que desea analizar:&lt;br /&gt;
Text after applying rules:=Texto tras aplicar las reglas:&lt;br /&gt;
Apply Rules=Aplicar Reglas&lt;br /&gt;
Automatically apply rules=Aplicar reglas automáticamente&lt;br /&gt;
Apply rules for each line=Analizar cada linea por separado&lt;br /&gt;
Line wrap=Ajuste de linea&lt;br /&gt;
Browse=Explorar&lt;br /&gt;
Select folders that you want to add:=Seleccione las carpetas que dese añadir:&lt;br /&gt;
Refresh=Actualizar&lt;br /&gt;
Close=Cerrar&lt;br /&gt;
Add Folders=Carpetas&lt;br /&gt;
Filter Settings=Opciones de filtrado&lt;br /&gt;
Show hidden folders=Mostrar carpetas ocultas&lt;br /&gt;
Show system folders=Mostrar carpetas de sistema&lt;br /&gt;
Explore selected folder=Explorar carpetas seleccionadas&lt;br /&gt;
Refresh Tree=Actualizar lista&lt;br /&gt;
Collapse All=Contraer Todo&lt;br /&gt;
Go To Folder=Ir a la carpeta&lt;br /&gt;
Filter Settings=Opciones de filtrado&lt;br /&gt;
Default behavior for adding folders:=Comportamiento por defecto para añadir carpetas:&lt;br /&gt;
Include subfolders=Incluir subcarpetas&lt;br /&gt;
Include hidden items=Incluir elementos ocultos&lt;br /&gt;
Add files within folders=Añadir los archivos en el interior de las carpetas&lt;br /&gt;
Add folders as files=Añadir las carpetas como si fuese archivos&lt;br /&gt;
Skip root folders when added as files=Ignorar las carpetas raíz&lt;br /&gt;
Include system items=Incluir elementos del sistema&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Masks:=Máscaras:&lt;br /&gt;
Note: separate multiple masks with &amp;quot;;&amp;quot; (semicolons).=Nota: Separe múltiples máscaras mediante “;” (punto y coma).&lt;br /&gt;
Apply only to the file name, instead of full path.=Aplicar solamente al nombre y no a la ruta completa.&lt;br /&gt;
Warning: Renaming Folders=Aviso: Renombrando carpetas&lt;br /&gt;
Renaming a folder also affects all of its content. 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.#c#cParent folders must always appear below their contained items. This can be easily achieved by sorting items in descending order by the Folder or Path column.=Renombrar una carpeta también afecta a su contenido. Pueden ocurrir ciertos errores si intenta renombrar la carpeta raíz y su contenido al mismo tiempo. Por este motivo el orden de la lista de archivos extremadamente importante.#c#cLas carpetas raíz deberán aparecer siempre debajo de su contenido. Para ello, lo único que habrá que hacer es ordenar la columna Carpeta o Ruta en orden descendente.&lt;br /&gt;
Never show this warning=No volver a mostrar este aviso&lt;br /&gt;
Continue=Continuar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
ReNamer=ReNamer&lt;br /&gt;
Rule=Regla&lt;br /&gt;
Statement=Instrucción&lt;br /&gt;
Add new rule (Ins)=Añadir nueva regla (Ins)&lt;br /&gt;
Add=Añadir&lt;br /&gt;
Remove selected rule (Del)=Eliminar regla seleccionada (Suprimir)&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Move Up selected rule (Ctrl+Up)=Mover hacia Arriba (Ctrl+Arriba)&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Move Down selected rule (Ctrl+Down)=Mover hacia Abajo (Ctrl+Abajo)&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Export=Exportar&lt;br /&gt;
Files=Archivos&lt;br /&gt;
Virtual Tree Data=Datos de Árbol Virtual&lt;br /&gt;
State=Estado&lt;br /&gt;
Path=Ruta&lt;br /&gt;
Folder=Carpeta&lt;br /&gt;
Name=Nombre&lt;br /&gt;
New Name=Nombre Nuevo&lt;br /&gt;
New Path=Ruta Nueva&lt;br /&gt;
Size=Tamaño&lt;br /&gt;
Size KB=Tamaño (KB)&lt;br /&gt;
Size MB=Tamaño (MB)&lt;br /&gt;
Created=Creado&lt;br /&gt;
Modified=Modificado&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Name Digits=Dígitos en el Nombre&lt;br /&gt;
Path Digits=Dígitos en la Ruta&lt;br /&gt;
Name Length=Longitud del Nombre&lt;br /&gt;
New Name Length=Longitud del Nuevo Nombre&lt;br /&gt;
Exif Date=Fecha EXIF&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Analyze Name=Analizar Nombre&lt;br /&gt;
Edit New Name=Editar Nombre Nuevo&lt;br /&gt;
Shell=Contextual&lt;br /&gt;
Open File=Abrir archivo&lt;br /&gt;
Open with Notepad=Abrir con Notepad&lt;br /&gt;
Open containing folder=Abrir ubicación&lt;br /&gt;
File Properties=Propiedades de archivo&lt;br /&gt;
Cut Files to Clipboard=Cortar archivo al portapapeles&lt;br /&gt;
Copy Files to Clipboard=Copiar archivo al portapapeles&lt;br /&gt;
Delete Files to Recycle Bin=Borrar a la papelera de reciclaje&lt;br /&gt;
Mark=Marcas&lt;br /&gt;
Mark=Marcar&lt;br /&gt;
UnMark=Desmarcar&lt;br /&gt;
Invert Marking=Invertir Marcas&lt;br /&gt;
Mark Only Changed (Inc. Case)=Marcar solo modificados (Incluir mayús/minús)&lt;br /&gt;
Mark Only Changed (Exc. Case)=Marcar solo modificados (Ignorar mayús/minús)&lt;br /&gt;
Mark Only Selected=Marcar solo los seleccionados&lt;br /&gt;
Mark by Mask=Marcar mediante Máscara&lt;br /&gt;
Clear=Limpiar&lt;br /&gt;
Clear All=Limpiar Todo&lt;br /&gt;
Clear Renamed=Limpiar Renombrados&lt;br /&gt;
Clear Failed=Limpiar Erróneos&lt;br /&gt;
Clear Valid=Limpiar Válidos&lt;br /&gt;
Clear Invalid=Limpiar Inválidos&lt;br /&gt;
Clear Marked=Limpiar Marcados&lt;br /&gt;
Clear Not Marked=Limpiar NO Marcados&lt;br /&gt;
Clear Not Changed=Limpiar NO Modificados&lt;br /&gt;
Select=Seleccionar&lt;br /&gt;
Select All=Seleccionar Todo&lt;br /&gt;
Invert Selection=Invertir Selección&lt;br /&gt;
Select by Name Length=Seleccionar por Longitud de Nombre&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Select by Mask=Selección por Máscara&lt;br /&gt;
Move=Mover&lt;br /&gt;
Up=Arriba&lt;br /&gt;
Down=Abajo&lt;br /&gt;
Remove Selected=Eliminar Seleccionado&lt;br /&gt;
File=Archivo&lt;br /&gt;
Exit=Salir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
General=General&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Miscellaneous=Otros&lt;br /&gt;
Presets=Favoritos&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Browse...=Explorar...&lt;br /&gt;
Import...=Importar...&lt;br /&gt;
Create Links=Crear accesos directos&lt;br /&gt;
Rescan=Actualizar lista&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Forum=Foro&lt;br /&gt;
Donate=Donar&lt;br /&gt;
Quick Guide=Guía Rápida&lt;br /&gt;
Version History=Historial de cambios&lt;br /&gt;
Copyrights=Copyrights&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Duplicate Rule=Duplicar Regla&lt;br /&gt;
Remove Rule=Eliminar Regla&lt;br /&gt;
Remove All Rules=Eliminar Todas las Reglas&lt;br /&gt;
Move Up=Mover Arriba&lt;br /&gt;
Move Down=Mover Abajo&lt;br /&gt;
Mark All=Marcar Todo&lt;br /&gt;
UnMark All=Desmarcar Todo&lt;br /&gt;
Export to Clipboard=Exportar al portapapeles&lt;br /&gt;
Export all columns to clipboard=Exportar todas las columnas al portapapeles&lt;br /&gt;
Autosize columns=Auto-ajustar columnas&lt;br /&gt;
Validate new names=Validar nombres nuevos&lt;br /&gt;
Fix conflicting new names=Solucionar nombres conflictivos&lt;br /&gt;
Highlight changed names=Destacar nombres modificados&lt;br /&gt;
Analyze sample text=Analizar texto de ejemplo&lt;br /&gt;
Apply rules to the clipboard=Aplicar reglas al portapapeles&lt;br /&gt;
Export file paths and undo paths=Exportar rutas de archivos y rutas iniciales&lt;br /&gt;
Export file paths and new names=Exportar rutas de archivos y nombres nuevos&lt;br /&gt;
Import file paths and new names=Importar rutas de archivos y nombres nuevos&lt;br /&gt;
Import files from text-list or play-list=Importar archivos desde una lista de texto o de reproducción&lt;br /&gt;
Export new names to clipboard=Exportar nombres nuevos al portapapeles&lt;br /&gt;
Import new names from clipboard=Importar nombres nuevos desde el portapapeles&lt;br /&gt;
Add Files=+Archivos&lt;br /&gt;
Add Folders=+Carpetas&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
About=Acerca de&lt;br /&gt;
Undo=Deshacer&lt;br /&gt;
Paste=Pegar&lt;br /&gt;
New Project=Nuevo Proyecto&lt;br /&gt;
All Settings=Todas las Opciones&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Save As=Guardar como...&lt;br /&gt;
Manage...=Administrar&lt;br /&gt;
Count marked and selected files=Contar archivos marcados y seleccionados&lt;br /&gt;
Sort by path for renaming folders=Ordenar por ruta las carpetas a renombrar&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Note: Most of the tags can only work for files, not folders.=Nota: La mayoría de etiquetas solo funcionan para archivos, no para carpetas.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
Save Preset=Guardar Favorito&lt;br /&gt;
Overwrite existing preset:=Sobreescribir favorito existente:&lt;br /&gt;
Preset Name:=Nombre de Favorito:&lt;br /&gt;
&amp;amp;Save=&amp;amp;Guardar&lt;br /&gt;
Save Filter Settings with the Preset?=¿Guardar Filtros con el Favorito?&lt;br /&gt;
Presets Links=Accesos directos a Favoritos&lt;br /&gt;
Please specify a folder where you want to place the links:=Especifique la carpeta dónde desea guardar los accesos directos:&lt;br /&gt;
Type of links:=Tipo de accesos directos:&lt;br /&gt;
Browse for Folder=Buscar carpeta&lt;br /&gt;
Use &amp;quot;Send To&amp;quot; Folder=Usar carpeta “Enviar a”&lt;br /&gt;
Load with Preset=Cargar Favorito&lt;br /&gt;
Rename with Preset=Renombrar con Favorito&lt;br /&gt;
Create Links=Crear Accesos Directos&lt;br /&gt;
Presets Manager=Administrador de Favoritos&lt;br /&gt;
Load Preset (Enter)=Cargar Favorito (Enter)&lt;br /&gt;
Load=Cargar&lt;br /&gt;
Duplicate Preset=Duplicar Favorito&lt;br /&gt;
Copy=Copiar&lt;br /&gt;
Rename Preset (F2)=Renombrar Favorito&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Manually Edit Preset (F4)=Editar Favorito manualmente&lt;br /&gt;
Edit=Editar&lt;br /&gt;
Delete Preset (Del)=Eliminar Favorito (Supr)&lt;br /&gt;
Delete=Eliminar&lt;br /&gt;
Append Preset=Añadir Favorito&lt;br /&gt;
Append=Añadir&lt;br /&gt;
Settings=Opciones&lt;br /&gt;
Save=Guardar&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
General=General&lt;br /&gt;
Configure Filter Settings=Configurar opciones de filtros&lt;br /&gt;
Example: file1, file2 ... file9, file10, file11, and so on.=Por ejemplo: a1, a2, ...a10, ...a100, ...étc.&lt;br /&gt;
Remember last position and size (main window only)=Recordar última posición y tamaño (Solo ventana principal)&lt;br /&gt;
Save rules configuration on exit, load on startup=Guardar reglas al salir, y restaurarlas al inicio&lt;br /&gt;
Always on top (main window only)=Siempre al frente (Solo ventana principal)&lt;br /&gt;
Use natural order sorting algorithm (2-3 times slower)=Usar algoritmo de ordenación natural (2-3 veces más lento)&lt;br /&gt;
Remember sorting options (files table)=Recordar opciones de ordenación (Tabla de archivos)&lt;br /&gt;
Always show non-main forms centered=Centrar siempre las ventanas no principales&lt;br /&gt;
Preview=Previsualizar&lt;br /&gt;
Warning: real-time update of the preview is very dangerous and its usage is not recommended!=AVISO: ¡La actualización en tiempo real es muy peligrosa y no se recomienda su uso!&lt;br /&gt;
Note: disabling any of these options will increase performance when processing large amount of files.=Nota: Deshabilitando cualquiera de estas opciones, la velocidad aumentará al procesar grandes cantidades de archivos.&lt;br /&gt;
Validate new filenames on preview=Validar nombres nuevos al Previsualizar&lt;br /&gt;
Auto preview on change of rules configurations=Previsualizar automáticamente cuando modifique las reglas&lt;br /&gt;
Auto size table on change=Redimensionar la tabla cuando haya cambios&lt;br /&gt;
Real-time update of the preview=Actualización en tiempo real de la previsualización&lt;br /&gt;
Auto preview when new files are added=Previsualizar automáticamente al añadir nuevos archivos&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Display message on successful rename=Mostrar mensaje cuando se renombre con éxito&lt;br /&gt;
Clear rules list on rename=Limpiar lista de reglas después de renombrar&lt;br /&gt;
Clear files table on rename=Limpiar lista de archivos después de renombrar&lt;br /&gt;
Overwrite files with New Names=Sobreescribir archivos que coincidan con los Nombres Nuevos&lt;br /&gt;
Warning: Overwritten files will be deleted permanently.=AVISO: Los archivos sobrescritos serán eliminados permanentemente.&lt;br /&gt;
Close program after successful rename=Cerrar el programa después de renombrar correctamente&lt;br /&gt;
Clear renamed files on rename=Limpiar archivos después de renombrarlos&lt;br /&gt;
Must be successfully confirmed by user=Pedir confirmación al usuario&lt;br /&gt;
Meta Tags=Meta-Tags&lt;br /&gt;
Date Format:=Formato de fecha:&lt;br /&gt;
Note: formats will be saved only if validated successfully.=Nota: Los formatos solo se guardaran si su validación es correcta.&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Preview:=Previsualizar:&lt;br /&gt;
MetaTag support=Soporte de Meta-Tags&lt;br /&gt;
Note: Disabling MetaTag support will increase performance when processing large amount of files.=Nota: Deshabilitando el soporte para Meta-Tags aumentará la velocidad al procesar grandes cantidades de archivos.&lt;br /&gt;
Misc.=Otros&lt;br /&gt;
Change text of &amp;quot;Drag your files here&amp;quot;:=Cambiar texto &amp;quot;Arrastre sus archivos aquí&amp;quot;:&lt;br /&gt;
Change text of &amp;quot;Click here to add a rule&amp;quot;:=Cambiar texto &amp;quot;Haga click para añadir una regla&amp;quot;:&lt;br /&gt;
Register preset extension (*.rnp)=Asociar la extensión de Favoritos (*.rnp) a ReNamer&lt;br /&gt;
Add to folders context menu =Añadir al menú contextual de carpetas&lt;br /&gt;
Add to &amp;quot;Send To&amp;quot; context menu=Añadir al menú contextual &amp;quot;Enviar a&amp;quot;&lt;br /&gt;
Hint: fragments separated with comma will be put in the same case as they are typed in this text box, for example: CD,DVD,DJ=Consejo: Los fragmentos separados por comas forzaran las mayús/minús a como las escriba aquí, por ejemplo: CD,DVD,eMule&lt;br /&gt;
Extension always lower case=Extensión siempre en minúsculas&lt;br /&gt;
Force case for fragments:=Forzar mayús/minús para las palabras:&lt;br /&gt;
Case change:=Cambiar Mayús/Minús:&lt;br /&gt;
all lower case=todo en minúsculas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
(none of the above)=(Sin cambios)&lt;br /&gt;
iNVERT cASE=iNVERTIR mayús/MINÚS &lt;br /&gt;
First letter capital=Primera letra en mayúscula&lt;br /&gt;
Capitalize Every Word=Palabras Empiezan Con Mayúscula&lt;br /&gt;
ALL UPPER CASE=TODO EN MÁYUSCULA&lt;br /&gt;
Replace these characters with spaces:=Sustituir estos caracteres por espacios:&lt;br /&gt;
Strip out content of brackets:=Eliminar contenidos entre paréntesis:&lt;br /&gt;
Fix spaces: only one space at a time, no spaces on sides of basename=Reparar espacios: No más de uno seguido, ni en los extremos&lt;br /&gt;
. (dot)=. (punto)&lt;br /&gt;
, (comma)=, (coma)&lt;br /&gt;
skip number sequences, for example version 1.2.3.4=Evitar secuencias numéricas, por ejemplo v1.23.45&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prepare for SharePoint (always inc. extension)=Preparar para MS SharePoint&lt;br /&gt;
Insert a space in front of capitalized letters=Insertar espacio frente a letras mayúsculas&lt;br /&gt;
From:=Desde:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Until:=Hasta:&lt;br /&gt;
Till the end=Hasta el final&lt;br /&gt;
Count:=Contar:&lt;br /&gt;
Delimiter:=Delimitador:&lt;br /&gt;
Do not remove delimiters=Conservar los delimitadores&lt;br /&gt;
New Extension (without dot):=Nueva extensión (sin punto):&lt;br /&gt;
Note: Some files may have multiple extensions matching their data type, for example: doc/ppt/xls have the same signature. Unrecognised files will remain unchanged. If this option is used, the new extension field is ignored.=Nota: Algunos tipos de archivos pueden coincidir con varias extensiones, por ejemplo: doc/ppt/xls tienen la misma firma. Los Archivos no reconocidos se mantendrán intactos. Usando esta opción el campo de nueva extensión será ignorado.&lt;br /&gt;
Append to the original filename=Añadir después del nombre original&lt;br /&gt;
Detect using &amp;quot;binary signature&amp;quot;=Detectar usando &amp;quot;firma binaria&amp;quot;&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Insert Meta Tag=Insertar Meta-Tag&lt;br /&gt;
Where:=Dónde:&lt;br /&gt;
Insert:=Insertar:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix=Sufijo&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
After text:=Después del texto:&lt;br /&gt;
Before text:=Antes del texto:&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help (F1)=Ayuda (F1)&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Try to Compile (Ctrl+T)=Intentar compilar (Ctrl+T)&lt;br /&gt;
Try to Compile=Intentar compilar&lt;br /&gt;
Scripts=Scripts&lt;br /&gt;
Go To Line (Ctrl+G)=Ir a linea (Ctrl+G)&lt;br /&gt;
Go To=Ir a&lt;br /&gt;
begin#c#l  // Add your code here#c#lend.=begin#c#l  // Escriba su código aquí#c#lend.&lt;br /&gt;
New pattern:=Orden nuevo:&lt;br /&gt;
Hint: Use $1..$N to reference delimited parts in the new pattern, $-1..$-N to reference from the end, $0 for the original name.=Consejo: Para hacer referencia a las partes utilice $1..$N. Para contar desde atrás $-1..$-N. Para el nombre original $0.&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Split using:=Separar usando:&lt;br /&gt;
Delimiters=Delimitadores&lt;br /&gt;
Positions=Posiciones&lt;br /&gt;
Exact pattern of delimiters=Delimitadores en orden exacto&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Right-to-left=De atrás adelante&lt;br /&gt;
Help=Ayuda&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Expression:=Expresión:&lt;br /&gt;
Hint: Use $1..$9 to reference subexpressions.=Consejo: Utilice $1..$9 para hacer referencia a subexpresiones.&lt;br /&gt;
Case-sensitive=Distinguir mayús/minús&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Remove:=Eliminar:&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Last=Última&lt;br /&gt;
All=Todas&lt;br /&gt;
First=Primera&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret symbols &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;)&lt;br /&gt;
Separate multiple items=Separar múltiples elementos&lt;br /&gt;
Insert Meta Tag (Ctrl+Ins)=Insertar Meta-Tag (Ctrl+Ins)&lt;br /&gt;
Occurrences:=Coincidencias:&lt;br /&gt;
Replace:=Reemplazar:&lt;br /&gt;
Find:=Buscar:&lt;br /&gt;
Note: &#039;Occurrences&#039; parameter will be ignored!=Nota: ¡El parámetro &amp;quot;Coincidencias&amp;quot; será ignorado!&lt;br /&gt;
Last=Última&lt;br /&gt;
First=Primera&lt;br /&gt;
All=Todas&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Case sensitive=Distinguir mayús/minús&lt;br /&gt;
Interpret &#039;?&#039;, &#039;*&#039;, &#039;[&#039;, &#039;]&#039; as wildcards and &#039;$n&#039; as backreferences?=Usar comodines (&amp;quot;?&amp;quot;, &amp;quot;*&amp;quot;, &amp;quot;[&amp;quot;, &amp;quot;]&amp;quot;) y referencias ($n)&lt;br /&gt;
Insert where:=Dónde insertar:&lt;br /&gt;
Pad with zeros to reach length:=Rellenar con ceros hasta longitud:&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Length:=Longitud:&lt;br /&gt;
Unique if possible=Único si posible&lt;br /&gt;
Index starts:=Comenzar desde:&lt;br /&gt;
Step:=Paso:&lt;br /&gt;
Repeat:=Repetir:&lt;br /&gt;
Reset if folder changes=Resetear si la carpeta cambia&lt;br /&gt;
Reset every:=Resetear cada:&lt;br /&gt;
Random=Aleatorio&lt;br /&gt;
Incremental=Incremental&lt;br /&gt;
Position:=Posición:&lt;br /&gt;
Prefix=Prefijo&lt;br /&gt;
Suffix:=Sufijo:&lt;br /&gt;
Note: Characters are processed in case insensitive manner.=Nota: Los caracteres son procesados sin distinguir mayús/minús.&lt;br /&gt;
User defined:=Definido por usuario:&lt;br /&gt;
Brackets:=Paréntesis:&lt;br /&gt;
Symbols:=Símbolos:&lt;br /&gt;
Digits:=Dígitos:&lt;br /&gt;
abcdefghijklmnopqrstuvwxyz=abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
English:=Inglés:&lt;br /&gt;
Strip all characters except selected=Eliminar todos excepto los seleccionados&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Translit Alphabets=Diccionarios de transliteración&lt;br /&gt;
Direction:=Dirección:&lt;br /&gt;
Translit Alphabet:=Diccionario:&lt;br /&gt;
Alphabet is a set of couples represented by letters and separated with an equal sign; they stand for translation of non-english characters to their english representation.=Un alfabeto es un conjunto de pares formados por letras y separados por un signo igual, que sirven para la traducción de caracteres no-ingleses a su representación inglesa.&lt;br /&gt;
Hint:=Consejo:&lt;br /&gt;
Backward=Hacia atrás&lt;br /&gt;
Forward=Hacia delante&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Type your new filenames here (one-per-line):=Escriba los nuevos nombres aquí (uno por línea):&lt;br /&gt;
Options=Opciones&lt;br /&gt;
Skip extension=Ignorar extensión&lt;br /&gt;
Replace the current name=Reemplazar el nombre actual&lt;br /&gt;
Insert in front of the current name=Insertar delante del nombre actual&lt;br /&gt;
Insert after the current name=Insertar detrás del nombre actual&lt;br /&gt;
Load from Text File=Cargar desde archivo de texto&lt;br /&gt;
Paste from Clipboard=Pegar desde el portapapeles&lt;br /&gt;
Confirm=Confirmar&lt;br /&gt;
&amp;amp;Yes=&amp;amp;Sí&lt;br /&gt;
&amp;amp;No=&amp;amp;No&lt;br /&gt;
OK=OK&lt;br /&gt;
Cancel=Cancelar&lt;br /&gt;
&amp;amp;Help=&amp;amp;Ayuda&lt;br /&gt;
&amp;amp;Abort=&amp;amp;Abort&lt;br /&gt;
&amp;amp;Retry=&amp;amp;Reintentar&lt;br /&gt;
&amp;amp;Ignore=&amp;amp;Ignorar&lt;br /&gt;
&amp;amp;All=&amp;amp;Todo&lt;br /&gt;
N&amp;amp;o to All=N&amp;amp;o a todo&lt;br /&gt;
Yes to &amp;amp;All=Sí $a todo&lt;br /&gt;
Warning=Aviso&lt;br /&gt;
Error=Error&lt;br /&gt;
Information=Información&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Select by Filename Length=Seleccionar por longitud del nombre&lt;br /&gt;
More than N characters:=Más de N caracteres:&lt;br /&gt;
Add Rule=Añadir Regla&lt;br /&gt;
Edit Rule=Editar Regla&lt;br /&gt;
Save Rule=Guardar Regla&lt;br /&gt;
Add to ReNamer=Añadir a ReNamer&lt;br /&gt;
Load with Preset=Cargar con Favorito&lt;br /&gt;
Rename with Preset=Renombrar con Favorito&lt;br /&gt;
Drag your files here=Arrastre sus archivos aquí&lt;br /&gt;
Click here to add a rule=Haga click para añadir una regla&lt;br /&gt;
Save Script...=Guardar Script&lt;br /&gt;
Browse Scripts...=Explorar Scripts&lt;br /&gt;
Browse Translits...=Explorar Diccionarios&lt;br /&gt;
Save Translit...=Guardar Diccionario&lt;br /&gt;
PascalScript=PascalScript&lt;br /&gt;
UserInput=Lista de nombres&lt;br /&gt;
Rearrange=Reordenar&lt;br /&gt;
Rename=Renombrar&lt;br /&gt;
Overwrite=Sobreescribir&lt;br /&gt;
Filters=Filtros&lt;br /&gt;
Cancel Sorting=Cancelar&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d, Length #3D %d=Linea #3D %d, Izquierda #3D %d, Derecha #3D %d, Longitud #3D %d&lt;br /&gt;
%d files=%d archivos&lt;br /&gt;
%d files (%s)=%d archivos (%s)&lt;br /&gt;
Select by Extension=Seleccionar por Extensión&lt;br /&gt;
Multiple extensions can be separated by semicolons. For example: jpg;doc#c#cExtensions (without dots):=Las extensiones pueden separarse mediante punto y coma. Ejemplo: jpg;doc#c#cExtensiones:&lt;br /&gt;
Select by Mask=Seleccionar por máscara&lt;br /&gt;
Multiple masks can be separated by semicolons. For example: *.jpg;*.doc#c#cMasks:=Las máscaras pueden separarse mediante punto y coma. Ejemplo: *.jpg;*.doc#c#cMáscaras:&lt;br /&gt;
Mark by Mask=Marcar por máscara&lt;br /&gt;
Use this rule to transliterate letters in the filename from one language into another.=Esta regla sirve para transliterar letras de un idioma a otro.&lt;br /&gt;
Use this rule to replace text in the filename using regular expressions.=Esta regla sirve para reemplazar texto utilizando expresiones regulares.&lt;br /&gt;
Use this rule to script a user defined manipulations with filename.=Esta regla sirve para definir scripts que manipulen el nombre.&lt;br /&gt;
Use this rule to assign names of files to the lines of text.=Esta regla sirve para asignar nombres de archivo a lineas de texto.&lt;br /&gt;
Use this rule to separate parts of the filename and rearrange them in a new pattern.=Esta regla sirve para separar partes del nombre y reonrdenarlas de nuevo.&lt;br /&gt;
Insert=Insertar&lt;br /&gt;
Delete=Borrar&lt;br /&gt;
Remove=Eliminar&lt;br /&gt;
Replace=Reemplazar&lt;br /&gt;
Extension=Extensión&lt;br /&gt;
Strip=Quitar&lt;br /&gt;
Case=Mayús/Minús&lt;br /&gt;
Serialize=Numerar&lt;br /&gt;
CleanUp=Limpiar&lt;br /&gt;
Translit=Transliterar&lt;br /&gt;
RegEx=RegEx&lt;br /&gt;
Total: %d#cMarked: %d#cSelected: %d=Total: %d#cMarcado/s: %d#Seleccionado/s: %d&lt;br /&gt;
Go To Line=Ir A Linea&lt;br /&gt;
Enter the line number:=Introduzca el número de la linea:&lt;br /&gt;
You are launching ReNamer for the first time.#c#cWould you like to open a Quick Guide?=Es la primera vez que abres el programa.#c#c¿Te gustaría abrir una Guía Rápida?&lt;br /&gt;
Could not open the following file:#c#c%s#c#cError: %s (%d).=No se pudo abrir el siguiente archivo:#c#c%s#c#cError: %s (%d).&lt;br /&gt;
True=Verdadero&lt;br /&gt;
False=Falso&lt;br /&gt;
Use this rule to insert text into the filename.=Esta regla sirve para insertar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to delete text from the filename.=Esta regla sirve para borrar texto según su posición.&lt;br /&gt;
Use this rule to remove text from the filename.=Esta regla sirve para eliminar texto según su contenido.&lt;br /&gt;
Use this rule to replace text in the filename.=Esta regla sirve para reemplazar texto en el nombre del archivo.&lt;br /&gt;
Use this rule to strip sets of characters from the filename.=Esta regla sirve para quitar caracteres del nombre.&lt;br /&gt;
Use this rule to change extension of the file.=Esta regla sirve para cambiar la extensión del archivo.&lt;br /&gt;
Use this rule to change the case of the filename.=Esta regla sirve para modificar las mayús/minús en el nombre.&lt;br /&gt;
Use this rule to serialize the filename (add incremental or random numbers).=Esta regla sirve para numerar los nombres.&lt;br /&gt;
Use this rule to clean up the filename.=Esta regla sirve para hacer una limpieza general del nombre.&lt;br /&gt;
INVALID FORMAT=FORMATO NO VÁLIDO&lt;br /&gt;
Operation of Copying and Cutting Files will place selected files into the Clipboard for later usage.#cNote: All files will be pasted into the same directory no matter where they were initially located!#c#cAre you sure you want to proceed?=La operación de copiado y pegado enviaran el archivo al portapapeles para un posterior uso.#cNota: ¡Todos los archivos serán pegados en la misma carpeta, sin importar la localización inicial!#c#c¿Está seguro de que desea continuar?&lt;br /&gt;
New Name:=Nombre Nuevo:&lt;br /&gt;
Rename Preset=Renombrar Favorito&lt;br /&gt;
Save Script=Guardar Script&lt;br /&gt;
Enter a name for a script:=Introduzca un nombre para el script:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
File already exists!#cOverwrite it?=¡Ya existe un archivo con el mismo nombre!#c¿Desea sobreescribirlo?&lt;br /&gt;
Save Translit=Guardar diccionario&lt;br /&gt;
Enter a name for a translit:=Introduzca un nombre para el diccionario:&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Please select a folder:=Por favor, seleccione una carpeta:&lt;br /&gt;
Folders: %d scanned, %d selected.=Carpetas: %d escaneada/s, %d seleccionada/s.&lt;br /&gt;
Go To Folder=Ir A Carpeta&lt;br /&gt;
Enter a full path to the folder that you want to go to:=Introduzca la ruta a la carpeta a la que quiera ir:&lt;br /&gt;
Preview process has been terminated due to a critical error:#c#c%s=La previsualización se fue abortada a causa de un error crítico:#c#c%s&lt;br /&gt;
%d file(s) failed to rename!=¡Falló el renombrado de %d archivo/s!&lt;br /&gt;
%d file(s) skipped.=%d archivo/s fueron ignorados.&lt;br /&gt;
Successfully Validated!=¡Validado correctamente!&lt;br /&gt;
Warning, found %d invalid filename(s)!=Aviso: ¡Se encontraron %d nombres no válidos!&lt;br /&gt;
%d of which have a duplicate in the list.=%d de los cuales tiene un duplicado en la lista.&lt;br /&gt;
%d of which conflict with existing filepath(s).=%d de los cuales están en conflicto con rutas (archivos) ya existentes.&lt;br /&gt;
%d of which exceed Windows MAX_PATH limitation.=%d de los cuales la ruta sobrepasó el límite de longitud de Windows (MAX_PATH: 260).&lt;br /&gt;
Incorrect Name!=¡Nombre incorrecto!&lt;br /&gt;
Delete &amp;quot;%s&amp;quot; preset?=¿Desea eliminar el Favorito &amp;quot;%s&amp;quot;?&lt;br /&gt;
Could not delete the &amp;quot;%s&amp;quot; preset!=¡No se pudo borrar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not copy the &amp;quot;%s&amp;quot; preset!=¡No se pudo copiar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
Could not rename the &amp;quot;%s&amp;quot; preset!=¡No se pudo renombrar el favorito &amp;quot;%s&amp;quot;!&lt;br /&gt;
You are about to edit Preset file(s) manualy!#cIf you are not sure in what you&#039;re doing - press Cancel.#c#cProceed with this action?=Está a punto de editar un nombre manualmente.#cSi no estas seguro de lo que estás haciendo, dale a cancelar.#c#c¿Desea continuar?&lt;br /&gt;
Original Path: %s#cNew Path: %s#c#cNew Name is already taken by another file, delete that file permanently?=Ruta original: %s#cRuta nueva: %s#c#cEl nuevo nombre está ya ocupado por otro archivo. ¿Desea eliminar dicho archivo permanentemente?&lt;br /&gt;
Seems that ReNamer is currently running.#cPlease close it, before continuing...=Parece ser que ReNamer ya esta abierto.#cPor favor, ciérrelo antes de continuar.&lt;br /&gt;
Compiled successfully!=¡Compilado correctamente!&lt;br /&gt;
Undo operation results:#c#c%d out of %d file(s) restored successfully!=Deshacer resultado de la operación:#c#c¡%d de %d archivos se restauraron correctamente!&lt;br /&gt;
Are you sure you want to undo renaming operation for %d file(s)?=¿Está usted seguro que desea deshacer la operación de renombrado para %d archivo/s?&lt;br /&gt;
Nothing to Undo!=¡Nada para deshacer!&lt;br /&gt;
MetaTag support is disabled!#c#cDo you want to Enable it?=¡El soporte para Meta-Tags está deshabilitado!#c#c¿Desea habilitarlo?&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Validate them?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea validarlos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
There are %d file(s) in the table,#care you sure you want to Fix Conflicting New Names?#c#cThis operation might take several minutes...=Hay %d archivo/s en la tabla,#c¿Está seguro que desea solucionar los nombres conflictivos?#c#cEsta operación podría tardar varios minutos...&lt;br /&gt;
You are about to Execute Shell Action on %d file(s).#cAre you sure you want to proceed with this action?=Está a punto de ejecutar una acción externa sobre %d archivo/s.#c¿Está seguro que desea continuar?&lt;br /&gt;
Nothing to Rename!=¡Nada para Renombrar!&lt;br /&gt;
All New Names are empty!#c#cHint: Configure the Rules and click Preview button.=¡Todos los nuevos nombres están vacíos!#c#cConsejo: Configure las reglas y pinche en el botón Previsualizar.&lt;br /&gt;
%d file(s) successfully renamed.=%d archivos/s renombrados correctamente.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Localization_Old_2013&amp;diff=2249</id>
		<title>Localization Old 2013</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Localization_Old_2013&amp;diff=2249"/>
		<updated>2011-11-04T14:54:52Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Add Spanish to the list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of this moment, there is no easy way to create translations. Translations can only be created with specialized programs like: [http://www.bome.com/Restorator/ Restorator], [http://www.multilizer.com/ Multilizer], etc. (none of them are free). With a use of such software all translatable text from an executable can be exported to a text file, later translated and imported back into the software, creating a localized (translated) version of the executable.&lt;br /&gt;
&lt;br /&gt;
Discussions regarding translations on forum:&lt;br /&gt;
* [http://www.den4b.com/forum/viewtopic.php?id=242 Different languages and localization]&lt;br /&gt;
* [http://www.den4b.com/forum/viewtopic.php?id=37 ReNamer - translatable]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; Articles below are only abstracts of what is still to come, i.e. working with localization files.&lt;br /&gt;
&lt;br /&gt;
== Translation Guide ==&lt;br /&gt;
&lt;br /&gt;
You can easily create translation to any (your) language using notepad or any other text editor. Steps are simple:&lt;br /&gt;
&lt;br /&gt;
# open the text file containing all translatable strings&lt;br /&gt;
# translate provided strings that are &#039;&#039;&#039;=&#039;&#039;&#039; (equal sign) separated&lt;br /&gt;
# make sure that you don&#039;t modify original one and type any other surplus characters or commands&lt;br /&gt;
# beware of the special formatting and maintain it, only translated actual words&lt;br /&gt;
# save as &amp;quot;Your language.txt&amp;quot; using Unicode encoding and send it to [[User:den4b|author]] and/or [[User:ERaSeR|eR@SeR]] &lt;br /&gt;
for analysis&lt;br /&gt;
&lt;br /&gt;
Here is an example of translated strings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
About=О Программе&lt;br /&gt;
Author:=Автор:&lt;br /&gt;
Clear rules list on rename=Очистить список правил при переименовании&lt;br /&gt;
Line #3D %d, Left #3D %d, Right #3D %d=Линия #3D %d, Слева #3D %d, Справа #3D %d=&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Beware that future versions of applications could bring more strings, so old translations will need to be updated. If you have any questions about this or you finished your hard work, send them to [[User:ERaSeR|eR@SeR]] using built-in e-mail option. You have to register at [http://www.den4b.com/forum/ Forum] in order to do that. Enjoy translating ;-)&lt;br /&gt;
&lt;br /&gt;
== Localization Files ==&lt;br /&gt;
&lt;br /&gt;
Here is a list of files which are the basis for translations. You can download the file, translate the appropriate strings (as described above) and upload it as a localized file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Application&lt;br /&gt;
! File&lt;br /&gt;
|-&lt;br /&gt;
| ReNamer&lt;br /&gt;
| [[Localization:ReNamer 5.60|ReNamer 5.60]]&lt;br /&gt;
|-&lt;br /&gt;
| Shutter&lt;br /&gt;
| file to be uploaded...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Localized Files ==&lt;br /&gt;
&lt;br /&gt;
Here is a list of localized files. Translations which can be used for compiling localized versions of the tools.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you are planning on doing translation, please, check that the target language doesn&#039;t already exist! If it does, instead of creating another localized file, you can check the already existing translation and make sure it is correct.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Application&lt;br /&gt;
! Language&lt;br /&gt;
! Authors&lt;br /&gt;
! File&lt;br /&gt;
|-&lt;br /&gt;
| ReNamer 5.50&lt;br /&gt;
| Russian&lt;br /&gt;
| &lt;br /&gt;
| file to be uploaded...&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ReNamer 5.50&lt;br /&gt;
| Serbian&lt;br /&gt;
| &lt;br /&gt;
| file to be uploaded...&lt;br /&gt;
|-&lt;br /&gt;
| ReNamer 5.50&lt;br /&gt;
| Spanish&lt;br /&gt;
| &lt;br /&gt;
| file to be uploaded... &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Main_menu&amp;diff=2209</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=2209"/>
		<updated>2011-09-07T07:03:45Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: correct a couple of keyboard sortcuts&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;
&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>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Talk:ReNamer:Pascal_Script:Quick_guide&amp;diff=2186</id>
		<title>Talk:ReNamer:Pascal Script:Quick guide</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Talk:ReNamer:Pascal_Script:Quick_guide&amp;diff=2186"/>
		<updated>2011-06-23T07:07:42Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi Denis, I saw something strange on this page.&lt;br /&gt;
&lt;br /&gt;
Could you take a look at the case/switch explanations?&lt;br /&gt;
&lt;br /&gt;
Because as far as I know, on ReNamer&#039;s scripts it doesn&#039;t do the &amp;quot;fall-through&amp;quot;, I think they are always &amp;quot;exclusive&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Am I wrong?&lt;br /&gt;
&lt;br /&gt;
Either way, if the info is ok, wouldn&#039;t be more logical that the &amp;quot;exclusive&amp;quot; would appear after the &amp;quot;fall-through&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
-- [[User:SafetyCar|SafetyCar]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You are right, there is no &amp;quot;fall-through&amp;quot; in Delphi / Pascal for &amp;quot;case&amp;quot; structure. I have removed the invalid block. This article was copied from somewhere by [[User:Narayan|Narayan]] and I haven&#039;t actually verified it. In the last week I already corrected 2 major flows.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Den4b|Den4b]] 03:40, 23 June 2011 (BST)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ok, thanks for your reply. The discussion can be deleted if you want.&lt;br /&gt;
&lt;br /&gt;
-- [[User:SafetyCar|SafetyCar]]&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=Talk:ReNamer:Pascal_Script:Quick_guide&amp;diff=2182</id>
		<title>Talk:ReNamer:Pascal Script:Quick guide</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=Talk:ReNamer:Pascal_Script:Quick_guide&amp;diff=2182"/>
		<updated>2011-06-19T12:30:18Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Created page with &amp;quot;Hi Denis, I saw something strange on this page.  Could you take a look at the case/switch explanations?  Because as far as I know, on ReNamer&amp;#039;s scripts it doesn&amp;#039;t do the &amp;quot;fall-th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi Denis, I saw something strange on this page.&lt;br /&gt;
&lt;br /&gt;
Could you take a look at the case/switch explanations?&lt;br /&gt;
&lt;br /&gt;
Because as far as I know, on ReNamer&#039;s scripts it doesn&#039;t do the &amp;quot;fall-through&amp;quot;, I think it&#039;sare always &amp;quot;exclusive&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Am I wrong?&lt;br /&gt;
&lt;br /&gt;
Either way, if the info it&#039;s ok, wouldn&#039;t be more logical that the &amp;quot;exclusive&amp;quot; would appear after the &amp;quot;fall-through&amp;quot;?&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2136</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=2136"/>
		<updated>2011-01-14T08:35:07Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Swapped descriptions for WideIncludeTrailingPathDelimiter and WideExcludeTrailingPathDelimiter&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;
| 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;
| 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>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2039</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=2039"/>
		<updated>2010-09-26T08:27:33Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction  ==&lt;br /&gt;
&lt;br /&gt;
ReNamer has many [http://www.taoyue.com/tutorials/pascal/pas4a.html procedures] and [http://www.taoyue.com/tutorials/pascal/pas4c.html functions] to manipulate the entities related to file names. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc.&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 [http://en.wikipedia.org/wiki/Unicode Unicode] strings (WideString). The prefix is used because there are similar functions which deal with Ansi 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;
*??? What is T prefix? &lt;br /&gt;
*??? What is UTF8?&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 UTF-8 encoded string. Useful to storing Unicode strings in files.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
| Convert 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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime;ANumberOfMonths: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfDays: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfHours: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMinutes: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfSeconds: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMilliSeconds: Int64): TDateTime; &lt;br /&gt;
| &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;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
Given two files located in two different folders, returns the relative path of &#039;&#039;&#039;DestName&#039;&#039;&#039; file with respect to the &#039;&#039;&#039;BaseName&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
e.g. If we input these two filenames: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D:\Folder1\FileName1.txt&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (The base file)&amp;lt;br&amp;gt;&#039;&#039;&#039;D:\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp; (The destination file) &lt;br /&gt;
&lt;br /&gt;
Then the relative path of the destination file is-&amp;lt;br&amp;gt;&#039;&#039;&#039;..\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039; &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;
| &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).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &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 exacutable 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(&#039;&amp;lt;nowiki&amp;gt;http://www.den4b.com/&amp;lt;/nowiki&amp;gt;&#039;);&lt;br /&gt;
* ShellOpenFile(&#039;C:\Document.doc&#039;);&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: Ys 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 Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String; &lt;br /&gt;
| &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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString; &lt;br /&gt;
| &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;
| &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;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2038</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=2038"/>
		<updated>2010-09-26T08:15:32Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction  ==&lt;br /&gt;
&lt;br /&gt;
ReNamer has many [http://www.taoyue.com/tutorials/pascal/pas4a.html procedures] and [http://www.taoyue.com/tutorials/pascal/pas4c.html functions] to manipulate the entities related to file names. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc.&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 [http://en.wikipedia.org/wiki/Unicode Unicode] strings (WideString). The prefix is used because there are similar functions which deal with Ansi 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;
*??? What is T prefix? &lt;br /&gt;
*??? What is UTF8?&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 UTF-8 encoded string. Useful to storing Unicode strings in files.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
| Convert 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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime;ANumberOfMonths: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfDays: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfHours: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMinutes: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfSeconds: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMilliSeconds: Int64): TDateTime; &lt;br /&gt;
| &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&amp;lt;br&amp;gt;???or is it the name of the drive?&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.&amp;lt;br&amp;gt;??? what does it return?&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExpandFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
Given two files located in two different folders, returns the relative path of &#039;&#039;&#039;DestName&#039;&#039;&#039; file with respect to the &#039;&#039;&#039;BaseName&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
e.g. If we input these two filenames: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D:\Folder1\FileName1.txt&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (The base file)&amp;lt;br&amp;gt;&#039;&#039;&#039;D:\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp; (The destination file) &lt;br /&gt;
&lt;br /&gt;
Then the relative path of the destination file is-&amp;lt;br&amp;gt;&#039;&#039;&#039;..\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039; &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;
| &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).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &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 exacutable 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(&#039;&amp;lt;nowiki&amp;gt;http://www.den4b.com/&amp;lt;/nowiki&amp;gt;&#039;);&lt;br /&gt;
* ShellOpenFile(&#039;C:\Document.doc&#039;);&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: Ys 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 Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String; &lt;br /&gt;
| &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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString; &lt;br /&gt;
| &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;
| &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;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=2037</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=2037"/>
		<updated>2010-09-26T08:00:25Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction  ==&lt;br /&gt;
&lt;br /&gt;
ReNamer has many [http://www.taoyue.com/tutorials/pascal/pas4a.html procedures] and [http://www.taoyue.com/tutorials/pascal/pas4c.html functions] to manipulate the entities related to file names. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc.&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 [http://en.wikipedia.org/wiki/Unicode Unicode] strings (WideString). The prefix is used because there are similar functions which deal with Ansi 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;
*??? What is T prefix? &lt;br /&gt;
*??? What is UTF8?&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 UTF-8 encoded string. Useful to storing Unicode strings in files.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
| Convert 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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime;ANumberOfMonths: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfDays: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfHours: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMinutes: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfSeconds: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMilliSeconds: Int64): TDateTime; &lt;br /&gt;
| &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 folder 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&amp;lt;br&amp;gt;???or is it the name of the drive?&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.&amp;lt;br&amp;gt;??? what does it return?&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExpandFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
Given two files located in two different folders, returns the relative path of &#039;&#039;&#039;DestName&#039;&#039;&#039; file with respect to the &#039;&#039;&#039;BaseName&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
e.g. If we input these two filenames: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D:\Folder1\FileName1.txt&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (The base file)&amp;lt;br&amp;gt;&#039;&#039;&#039;D:\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp; (The destination file) &lt;br /&gt;
&lt;br /&gt;
Then the relative path of the destination file is-&amp;lt;br&amp;gt;&#039;&#039;&#039;..\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractShortPathName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideIncludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExcludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &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;
| &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).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &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 exacutable 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(&#039;&amp;lt;nowiki&amp;gt;http://www.den4b.com/&amp;lt;/nowiki&amp;gt;&#039;);&lt;br /&gt;
* ShellOpenFile(&#039;C:\Document.doc&#039;);&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: Ys 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 Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String; &lt;br /&gt;
| &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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString; &lt;br /&gt;
| &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;
| &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;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=1821</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=1821"/>
		<updated>2010-06-23T10:50:09Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Undo revision 1820 by SafetyCar (Talk) undoing from Chrome, Opera messed it up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction  ==&lt;br /&gt;
&lt;br /&gt;
ReNamer has many [http://www.taoyue.com/tutorials/pascal/pas4a.html procedures] and [http://www.taoyue.com/tutorials/pascal/pas4c.html functions] to manipulate the entities related to file names. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc.&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 [http://en.wikipedia.org/wiki/Unicode Unicode] strings (WideString). The prefix is used because there are similar functions which deal with Ansi 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;
*??? What is T prefix? &lt;br /&gt;
*??? What is UTF8?&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 UTF-8 encoded string. Useful to storing Unicode strings in files.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
| Convert 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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime;ANumberOfMonths: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfDays: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfHours: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMinutes: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfSeconds: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMilliSeconds: Int64): TDateTime; &lt;br /&gt;
| &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;
| &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;
| &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&amp;lt;br&amp;gt;???or is it the name of the drive?&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.&amp;lt;br&amp;gt;??? what does it return?&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExpandFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
Given two files located in two different folders, returns the relative path of &#039;&#039;&#039;DestName&#039;&#039;&#039; file with respect to the &#039;&#039;&#039;BaseName&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
e.g. If we input these two filenames: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D:\Folder1\FileName1.txt&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (The base file)&amp;lt;br&amp;gt;&#039;&#039;&#039;D:\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp; (The destination file) &lt;br /&gt;
&lt;br /&gt;
Then the relative path of the destination file is-&amp;lt;br&amp;gt;&#039;&#039;&#039;..\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractShortPathName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideIncludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExcludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &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;
| &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).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &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 exacutable 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(&#039;&amp;lt;nowiki&amp;gt;http://www.den4b.com/&amp;lt;/nowiki&amp;gt;&#039;);&lt;br /&gt;
* ShellOpenFile(&#039;C:\Document.doc&#039;);&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: Ys 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 Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String; &lt;br /&gt;
| &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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString; &lt;br /&gt;
| &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;
| &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;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=1820</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=1820"/>
		<updated>2010-06-23T10:46:30Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction  ==&lt;br /&gt;
&lt;br /&gt;
ReNamer has many [http://www.taoyue.com/tutorials/pascal/pas4a.html procedures] and [http://www.taoyue.com/tutorials/pascal/pas4c.html functions] to manipulate the entities related to file names. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc.&lt;br /&gt;
 &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 [http://en.wikipedia.org/wiki/Unicode Unicode] strings (WideString). The prefix is used because there are similar functions which deal with Ansi 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;
&lt;br /&gt;
*??? What is T prefix? &lt;br /&gt;
 &lt;br /&gt;
*??? What is UTF8?&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;
 &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;
 &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;
 &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;
 &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;
 &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;
&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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
| &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;
 &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;
| &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;
 &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;
 &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;
 &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 lang=&amp;quot;null&amp;quot;&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;
&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;
&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;
 &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;
 &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;
 &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;
&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;
 &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;
&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;
|}&lt;br /&gt;
&lt;br /&gt;
General parameters of the functions: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
*Input - The WideString that is input to the function. &lt;br /&gt;
 &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;
 &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;
 &lt;br /&gt;
*CaseSensitive - Specifies whether to process in a case-sensitive mode.&lt;br /&gt;
 &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;
 &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IsWideCharUpper&#039;&#039;&#039;(WC: WideChar): Boolean;&lt;br /&gt;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
&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;
 &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;
 &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;
 &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;
 &lt;br /&gt;
| Convert Unicode string to the UTF-8 encoded string. Useful to storing Unicode strings in files.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
 &lt;br /&gt;
| Convert 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;
 &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;BoolToStr&#039;&#039;&#039;(B: Boolean): String;&lt;br /&gt;
 &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;
 &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;
 &lt;br /&gt;
*IntToStr(0123) = &#039;123&#039;&lt;br /&gt;
 &lt;br /&gt;
*IntToStr(123) &amp;amp;lt;&amp;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;
 &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;
 &lt;br /&gt;
*StrToInt(&#039;123&#039;) = 0123&lt;br /&gt;
 &lt;br /&gt;
*StrToInt(&#039;0123&#039;) = 123&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&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;
&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;StrToIntDef&#039;&#039;&#039;(const S: String; const Default: Integer): Integer;&lt;br /&gt;
 &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;
 &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;
 &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;
 &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;
 &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;
 &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Specifier&lt;br /&gt;
 &lt;br /&gt;
! Represents&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;0&#039;&#039;&#039;&amp;amp;nbsp;(zero)&lt;br /&gt;
 &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;
 &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;
 &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;
 &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;
|-&lt;br /&gt;
| function &#039;&#039;&#039;DateToStr&#039;&#039;&#039;(D: TDateTime): String;&lt;br /&gt;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;Date&#039;&#039;&#039;: TDateTime;&lt;br /&gt;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime;ANumberOfMonths: Integer): TDateTime;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfDays: Integer): TDateTime;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfHours: Int64): TDateTime;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMinutes: Int64): TDateTime;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfSeconds: Int64): TDateTime;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMilliSeconds: Int64): TDateTime;&lt;br /&gt;
 &lt;br /&gt;
| &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &lt;br /&gt;
| &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;
 &lt;br /&gt;
| &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;
 &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;
 &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;
 &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;
 &lt;br /&gt;
| Returns the drive letter&amp;lt;br&amp;gt;???or is it the name of the drive?&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractFileName&#039;&#039;&#039;(const FileName: WideString): WideString;&lt;br /&gt;
 &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;
 &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;
 &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;
 &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;
 &lt;br /&gt;
| Strips off the extension from the filename.&amp;lt;br&amp;gt;??? what does it return?&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExpandFileName&#039;&#039;&#039;(const FileName: WideString): WideString;&lt;br /&gt;
 &lt;br /&gt;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
Given two files located in two different folders, returns the relative path of &#039;&#039;&#039;DestName&#039;&#039;&#039; file with respect to the &#039;&#039;&#039;BaseName&#039;&#039;&#039; file. &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
e.g. If we input these two filenames: &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D:\Folder1\FileName1.txt&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (The base file)&amp;lt;br&amp;gt;&#039;&#039;&#039;D:\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp; (The destination file) &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Then the relative path of the destination file is-&amp;lt;br&amp;gt;&#039;&#039;&#039;..\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039; &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;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideIncludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExcludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideSameFileName&#039;&#039;&#039;(const S1, S2: WideString): Boolean;&lt;br /&gt;
 &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;
 &lt;br /&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;
 &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;
 &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;
 &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).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String;&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String);&lt;br /&gt;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String);&lt;br /&gt;
 &lt;br /&gt;
| &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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 exacutable 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(&#039;&amp;lt;nowiki&amp;gt;http://www.den4b.com/&amp;lt;/nowiki&amp;gt;&#039;);&lt;br /&gt;
 &lt;br /&gt;
*ShellOpenFile(&#039;C:\Document.doc&#039;);&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;
 &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;
 &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;
 &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;ShowMessage&#039;&#039;&#039;(const Msg: String);&lt;br /&gt;
 &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;
 &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;
 &lt;br /&gt;
| Show a simple prompt with the message specified by &#039;&#039;&#039;Msg&#039;&#039;&#039; parameter and two button: Ys 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;
 &lt;br /&gt;
| Same as &#039;&#039;&#039;DialogYesNo&#039;&#039;&#039; function but parameter is Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String;&lt;br /&gt;
 &lt;br /&gt;
| &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;
 &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString;&lt;br /&gt;
 &lt;br /&gt;
| &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;
 &lt;br /&gt;
| &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;
 &lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;Sleep&#039;&#039;&#039;(Milliseconds: Cardinal);&lt;br /&gt;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;
 &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;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=1819</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=1819"/>
		<updated>2010-06-23T10:34:15Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Editing my previously added example on the (Sub)MatchesRegEx.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction  ==&lt;br /&gt;
&lt;br /&gt;
ReNamer has many [http://www.taoyue.com/tutorials/pascal/pas4a.html procedures] and [http://www.taoyue.com/tutorials/pascal/pas4c.html functions] to manipulate the entities related to file names. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc.&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 [http://en.wikipedia.org/wiki/Unicode Unicode] strings (WideString). The prefix is used because there are similar functions which deal with Ansi 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;
*??? What is T prefix? &lt;br /&gt;
*??? What is UTF8?&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;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideReplaceText&#039;&#039;&#039;(const S, OldPattern, NewPattern: WideString): WideString; &lt;br /&gt;
| &amp;amp;nbsp;???&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 UTF-8 encoded string. Useful to storing Unicode strings in files.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
| Convert 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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime;ANumberOfMonths: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfDays: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfHours: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMinutes: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfSeconds: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMilliSeconds: Int64): TDateTime; &lt;br /&gt;
| &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;
| &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;
| &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&amp;lt;br&amp;gt;???or is it the name of the drive?&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.&amp;lt;br&amp;gt;??? what does it return?&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExpandFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
Given two files located in two different folders, returns the relative path of &#039;&#039;&#039;DestName&#039;&#039;&#039; file with respect to the &#039;&#039;&#039;BaseName&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
e.g. If we input these two filenames: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D:\Folder1\FileName1.txt&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (The base file)&amp;lt;br&amp;gt;&#039;&#039;&#039;D:\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp; (The destination file) &lt;br /&gt;
&lt;br /&gt;
Then the relative path of the destination file is-&amp;lt;br&amp;gt;&#039;&#039;&#039;..\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractShortPathName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideIncludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExcludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &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;
| &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).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &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 exacutable 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(&#039;&amp;lt;nowiki&amp;gt;http://www.den4b.com/&amp;lt;/nowiki&amp;gt;&#039;);&lt;br /&gt;
* ShellOpenFile(&#039;C:\Document.doc&#039;);&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: Ys 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 Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String; &lt;br /&gt;
| &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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString; &lt;br /&gt;
| &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;
| &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;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Pascal_Script:Functions&amp;diff=1818</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=1818"/>
		<updated>2010-06-23T10:20:57Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction  ==&lt;br /&gt;
&lt;br /&gt;
ReNamer has many [http://www.taoyue.com/tutorials/pascal/pas4a.html procedures] and [http://www.taoyue.com/tutorials/pascal/pas4c.html functions] to manipulate the entities related to file names. These entities may be derived from the existing filename, path, system date, meta tags from the file, strings entered by the user, etc.&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 [http://en.wikipedia.org/wiki/Unicode Unicode] strings (WideString). The prefix is used because there are similar functions which deal with Ansi 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;
*??? What is T prefix? &lt;br /&gt;
*??? What is UTF8?&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;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideReplaceText&#039;&#039;&#039;(const S, OldPattern, NewPattern: WideString): WideString; &lt;br /&gt;
| &amp;amp;nbsp;???&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;A_-_1...B_-_2---C_-_3&#039; and the function &#039;&#039;&#039;MatchesRegEx&#039;&#039;&#039;(Input, &#039;&#039;&#039;&#039;([A-Z])_-_(\d)&#039;&#039;&#039;&#039;, False).&amp;amp;nbsp;What we get is [&#039;&#039;&#039;&#039;A_-_1&#039;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;B_-_2&#039;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;C_-_3&#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;A_-_1...B_-_2---C_-_3&#039; and the function &#039;&#039;&#039;SubMatchesRegEx&#039;&#039;&#039;(Input, &#039;&#039;&#039;&#039;([A-Z])_-_(\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 UTF-8 encoded string. Useful to storing Unicode strings in files.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;UTF8Decode&#039;&#039;&#039;(const S: String): WideString;&lt;br /&gt;
| Convert 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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMonth&#039;&#039;&#039;(const AValue: TDateTime;ANumberOfMonths: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncWeek&#039;&#039;&#039;(const AValue: TDateTime; const ANumberOfWeeks: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncDay&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfDays: Integer): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncHour&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfHours: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMinute&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMinutes: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfSeconds: Int64): TDateTime; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;IncMilliSecond&#039;&#039;&#039;(const AValue: TDateTime;const ANumberOfMilliSeconds: Int64): TDateTime; &lt;br /&gt;
| &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;
| &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;
| &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&amp;lt;br&amp;gt;???or is it the name of the drive?&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.&amp;lt;br&amp;gt;??? what does it return?&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExpandFileName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractRelativePath&#039;&#039;&#039;(const BaseName, DestName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
Given two files located in two different folders, returns the relative path of &#039;&#039;&#039;DestName&#039;&#039;&#039; file with respect to the &#039;&#039;&#039;BaseName&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
e.g. If we input these two filenames: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;D:\Folder1\FileName1.txt&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; (The base file)&amp;lt;br&amp;gt;&#039;&#039;&#039;D:\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039;&amp;amp;nbsp;&amp;amp;nbsp; (The destination file) &lt;br /&gt;
&lt;br /&gt;
Then the relative path of the destination file is-&amp;lt;br&amp;gt;&#039;&#039;&#039;..\Folder2\Folder22\FileName2.pdf&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExtractShortPathName&#039;&#039;&#039;(const FileName: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideIncludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideExcludeTrailingPathDelimiter&#039;&#039;&#039;(const S: WideString): WideString; &lt;br /&gt;
| &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;
| &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).&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileCountLines&#039;&#039;&#039;(const FileName: WideString): Integer; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;FileReadContent&#039;&#039;&#039;(const FileName: WideString): String; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileWriteContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| procedure &#039;&#039;&#039;FileAppendContent&#039;&#039;&#039;(const FileName: WideString; const Content: String); &lt;br /&gt;
| &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 exacutable 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(&#039;&amp;lt;nowiki&amp;gt;http://www.den4b.com/&amp;lt;/nowiki&amp;gt;&#039;);&lt;br /&gt;
* ShellOpenFile(&#039;C:\Document.doc&#039;);&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: Ys 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 Unicode text.&lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;InputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: String): String; &lt;br /&gt;
| &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;
| &lt;br /&gt;
|-&lt;br /&gt;
| function &#039;&#039;&#039;WideInputBox&#039;&#039;&#039;(const ACaption, APrompt, ADefault: WideString): WideString; &lt;br /&gt;
| &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;
| &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;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Scripts:Roman_numerals_serialization&amp;diff=1561</id>
		<title>ReNamer:Scripts:Roman numerals serialization</title>
		<link rel="alternate" type="text/html" href="https://www.den4b.com/w/index.php?title=ReNamer:Scripts:Roman_numerals_serialization&amp;diff=1561"/>
		<updated>2010-02-05T20:18:14Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: Created page with &amp;#039;The script does a serialization with roman numerals. The roman number is added at the end of the file name.  For example, &amp;quot;Book.doc&amp;quot; will turn into new &amp;quot;Book I.doc&amp;quot; and so on.  =…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The script does a serialization with roman numerals. The roman number is added at the end of the file name.&lt;br /&gt;
&lt;br /&gt;
For example, &amp;quot;Book.doc&amp;quot; will turn into new &amp;quot;Book I.doc&amp;quot; and so on.&lt;br /&gt;
&lt;br /&gt;
== Tested ==&lt;br /&gt;
&lt;br /&gt;
* ReNamer 5.50&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&lt;br /&gt;
Author: SafetyCar. Date: 09 January 2009.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  Count: Integer;&lt;br /&gt;
&lt;br /&gt;
function ArabicToRoman(Number:Integer):WideString;&lt;br /&gt;
var&lt;br /&gt;
  Fulls, Halves: TStringsArray;&lt;br /&gt;
  AllFulls, AllHalves, Arabic, Roman: WideString;&lt;br /&gt;
  I, U: Integer;&lt;br /&gt;
  &lt;br /&gt;
begin&lt;br /&gt;
  Roman  := &#039;&#039;;&lt;br /&gt;
  Arabic := IntToStr(Number);&lt;br /&gt;
  &lt;br /&gt;
  AllFulls  := &#039;I|X|C|M|(X)|(C)|(M)&#039;;&lt;br /&gt;
  AllHalves := &#039;V|L|D|(V)|(L)|(D)&#039;;&lt;br /&gt;
    &lt;br /&gt;
  Fulls  := WideSplitString(AllFulls, &#039;|&#039;);&lt;br /&gt;
  Halves := WideSplitString(AllHalves, &#039;|&#039;);&lt;br /&gt;
  &lt;br /&gt;
  for I:=0 to Length(Arabic)-1 do&lt;br /&gt;
  begin&lt;br /&gt;
    U := StrToInt(Arabic[Length(Arabic)-I]);&lt;br /&gt;
    If U = 0 then Roman := Roman;&lt;br /&gt;
    If U = 1 then Roman := Fulls[i] + Roman;&lt;br /&gt;
    If U = 2 then Roman := Fulls[i] + Fulls[i] + Roman;&lt;br /&gt;
    If U = 3 then Roman := Fulls[i] + Fulls[i] + Fulls[i] + Roman;&lt;br /&gt;
    If U = 4 then Roman := Fulls[i] + Halves[i] + Roman;&lt;br /&gt;
    If U = 5 then Roman := Halves[i] + Roman;&lt;br /&gt;
    If U = 6 then Roman := Halves[i] + Fulls[i] + Roman;&lt;br /&gt;
    If U = 7 then Roman := Halves[i] + Fulls[i] + Fulls[i] + Roman;&lt;br /&gt;
    If U = 8 then Roman := Halves[i] + Fulls[i] + Fulls[i] + Fulls[i] + Roman;&lt;br /&gt;
    If U = 9 then Roman := Fulls[i] + Fulls[I+1] + Roman;&lt;br /&gt;
  end;&lt;br /&gt;
  &lt;br /&gt;
  Result := Roman;&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  Count := Count + 1;&lt;br /&gt;
  FileName := WideExtractBaseName(FileName) + &#039; &#039; + ArabicToRoman(Count) + WideExtractFileExt(FileName);&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
	<entry>
		<id>https://www.den4b.com/w/index.php?title=ReNamer:Regular_Expressions&amp;diff=265</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=265"/>
		<updated>2009-06-17T16:36:54Z</updated>

		<summary type="html">&lt;p&gt;SafetyCar: bad coding corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RegEx (Regular Expressions)&lt;br /&gt;
&lt;br /&gt;
Regular Expressions allow you to use precise search conditions, such as your search string must be located at the beginning (or at the end-) of a line, the specified text must occur &#039;&#039;n&#039;&#039; times, etc.&lt;br /&gt;
&lt;br /&gt;
RegEx expressions use &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;$ . ^ { [ ( | ) * + ? \ &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;characters (called metacharacters) in various combinations to specify all these conditions.&#039;&#039;&#039; &#039;&#039;&#039;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 “&#039;&#039;&#039;&#039;&#039;RegEx pattern”&#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 &#039;&#039;&#039;b?t&#039;&#039;&#039; 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 cat, Cat, cAt, CAT and caT are not equivalent).&lt;br /&gt;
&lt;br /&gt;
Also, note that even the digits (0-9) are “numeric characters” for RegEx. &lt;br /&gt;
&lt;br /&gt;
In this section, the RegEx expressions (patterns) are shown in &#039;&#039;&#039;bold orange&#039;&#039;&#039;. 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 (&#039;&#039;&#039;green&#039;&#039;&#039; color), or does not match (&#039;&#039;&#039;red&#039;&#039;&#039; color)&lt;br /&gt;
&lt;br /&gt;
=== Simple (literal) matches ===&lt;br /&gt;
When the search string does not contain any metacharacters, the RegEx engine works like “normal” search. (it tries to find an exact copy of the search string.) (This is also known as “literal match”).&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 &#039;&#039;&#039;\&#039;&#039;&#039; character is called “&#039;&#039;escape character”, because &#039;&#039;it lets the metacharacter escape from its special duty, and lets it act as a normal character. Its combination with a metacharacter is called “&#039;&#039;escape sequence”&#039;&#039;). &lt;br /&gt;
&lt;br /&gt;
For example, metacharacter &#039;&#039;&#039;^&#039;&#039;&#039; matches the beginning of string, but &#039;&#039;&#039;\^&#039;&#039;&#039; matches the character &#039;&#039;&#039;^&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Note that the RegEx pattern &#039;&#039;&#039;\\&#039;&#039;&#039; matches the character &#039;&#039;&#039;\&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;RegEx pattern&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Matches-&#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;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;foobar&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;foobar&#039;&#039;&#039;&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;
|-&lt;br /&gt;
| &#039;&#039;&#039;\^FooBarPtr&#039;&#039;&#039;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;^FooBarPtr&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| The &#039;&#039;&#039;\^ &#039;&#039;&#039;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;
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;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;RegEx pattern&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;matches-&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\xnn&#039;&#039;&#039;&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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\x{nnnn}&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| two bytes char with hex code nnnn (unicode)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\t&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| tab (HT/TAB), same as \x09 (Hex 09)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\n&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| new line (NL), same as \x0a (Hex 0a)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\r&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| carriage return (CR), same as \x0d (Hex 0d) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\f&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| form feed (FF), same as \x0c (Hex 0c)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;foo\x20bar&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;foo bar&#039;&#039;&#039; (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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\tfoobar&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;foobar&#039;&#039;&#039; 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 “white spaces”. 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;
A character class is a list of characters in square brackets &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, 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 &#039;&#039;&#039;-&#039;&#039;&#039; is used to indicate range of characters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;RegEx Pattern&#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;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[abdef]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Matches &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;b&#039;&#039;&#039;, &#039;&#039;&#039;d&#039;&#039;&#039;, &#039;&#039;&#039;e&#039;&#039;&#039;, or &#039;&#039;&#039;f&#039;&#039;&#039; (only &#039;&#039;one&#039;&#039; character), but no other characters&#039;&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[c-m]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Matches any one (and only one) of the small alphabetical characters, from &#039;&#039;&#039;c&#039;&#039;&#039; to &#039;&#039;&#039;m&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[G-J]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Matches any one (and only one) of the capital alphabetical characters from &#039;&#039;&#039;G&#039;&#039;&#039; to &#039;&#039;&#039;J&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[a-zA-Z]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[5-8]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Matches any one (and only one) of numerical characters from &#039;&#039;&#039;5&#039;&#039;&#039; to &#039;&#039;&#039;8&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[\n-\x0D]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Matches any one (and only one) of &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;#10&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;,&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;#11&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;,&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;#12&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;,&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;#13 &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;(note the use of [#6.4.1.Simple (literal) matches|outline escape sequence] &#039;&#039;inside&#039;&#039; a class)&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 &#039;&#039;&#039;^&#039;&#039;&#039; at the very beginning of the list (RegEx interprets that as “none of the characters listed in this class”).&lt;br /&gt;
* If you want &#039;&#039;&#039;–&#039;&#039;&#039; or &#039;&#039;&#039;]&#039;&#039;&#039; itself to be a member of a class, put it at the start or end of the list, or create a [#5.3.1.Simple (literal) matches|outline escape sequence] (by putting &#039;&#039;&#039;\&#039;&#039;&#039; before it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;RegEx Pattern&#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;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[-az]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;z &#039;&#039;&#039;and &#039;&#039;&#039;– &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(since &#039;&#039;&#039;– &#039;&#039;&#039;is put at the beginning, the escape sequence is not needed)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[a\-z]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;a&#039;&#039;&#039;, &#039;&#039;&#039;z&#039;&#039;&#039; and &#039;&#039;&#039;-&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(since &#039;&#039;&#039;– &#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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[^0-9]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches any &#039;&#039;non-digit&#039;&#039; character&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[]-a]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches any character from &#039;&#039;&#039;] &#039;&#039;&#039;to&#039;&#039;&#039; a&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;foob[aeiou]r&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Matches with &#039;&#039;&#039;foobar&#039;&#039;&#039;, &#039;&#039;&#039;foober,&#039;&#039;&#039; etc. but not &#039;&#039;&#039;foobbr&#039;&#039;&#039;, &#039;&#039;&#039;foobcr&#039;&#039;&#039;, etc.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;foob[^aeiou]r&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Matches with &#039;&#039;&#039;foobbr&#039;&#039;&#039;, &#039;&#039;&#039;foobcr&#039;&#039;&#039; etc. but not &#039;&#039;&#039;foobar&#039;&#039;&#039;, &#039;&#039;&#039;foober&#039;&#039;&#039; etc.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
@@@ The “] to a” 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;
Some of the character classes are used so often that RegEx has predefined escape sequences to represent them. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;RegEx Pattern&#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;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\w&#039;&#039;&#039;&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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\W&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| a non-alphanumeric character&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\d&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| a numeric character&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\D&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| a non-numeric character&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\s&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| any space (same as the &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[ \t\n\r\f] &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;class)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\S&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| a non space&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;.&#039;&#039;&#039;&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 &#039;&#039;&#039;\w&#039;&#039;&#039; with &#039;&#039;&#039;\W&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
=== Word/Text Boundaries ===&lt;br /&gt;
A word boundary (\b) is a spot between two characters that has a \w on one side of it and a \W on the other side of it (in either order), counting the imaginary characters off the beginning and end of the string as matching a \W.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;RegEx Pattern&#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;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\b&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| word boundary&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\B&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| not word boundary&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\A&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| start of text (&#039;&#039;&#039;^&#039;&#039;&#039; is an alternative)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;\Z&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| end of text (&#039;&#039;&#039;$&#039;&#039;&#039; 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, &#039;&#039;&#039;\bhis\b &#039;&#039;&#039;will search for a whole word &#039;&#039;&#039;his&#039;&#039;&#039;, but will ignore &#039;&#039;&#039;this&#039;&#039;&#039;,&#039;&#039;&#039; history &#039;&#039;&#039;or &#039;&#039;&#039;whistle&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
=== Iterators (Quantifiers) ===&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 “four dogs”, we would have to say “dogs four”, 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;b+&#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;b+? &#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;? &#039;&#039;&#039;attached to a greedy expression makes it non-greedy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! &amp;lt;center&amp;gt;RegEx pattern&amp;lt;/center&amp;gt;&lt;br /&gt;
! &amp;lt;center&amp;gt;Remarks&amp;lt;/center&amp;gt;&lt;br /&gt;
! &amp;lt;center&amp;gt;Greedy?&amp;lt;/center&amp;gt;&lt;br /&gt;
! &amp;lt;center&amp;gt;Remarks&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&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;{0,}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;+&#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;{1,}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;?&#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;{0,1}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;{n}&#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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;{n,}&#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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;{n,m}&#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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;*?&amp;lt;/nowiki&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;{0,}?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;+?&#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;{1,}?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;??&#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;{0,1}?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;{n}?&#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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;{n,}?&#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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;{n,m}?&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| at least &#039;&#039;n&#039;&#039; but not more than m 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;
@@@ by definition, the {} expressions have to find exactly the specified number of occurences. So can they be greedy?&lt;br /&gt;
&lt;br /&gt;
Let us see some examples:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! &amp;lt;center&amp;gt;RegEx pattern&amp;lt;/center&amp;gt;&lt;br /&gt;
! &amp;lt;center&amp;gt;Remarks&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;foob.*r&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;foobar,&#039;&#039;&#039; &#039;&#039;&#039;foobalkjdflkj9r&#039;&#039;&#039; and &#039;&#039;&#039;foobr&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;foob.+r&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;foobar&#039;&#039;&#039;, &#039;&#039;&#039;foobalkjdflkj9r&#039;&#039;&#039; but not &#039;&#039;&#039;foobr&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;foob.?r&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;foobar,&#039;&#039;&#039; &#039;&#039;&#039;foobbr&#039;&#039;&#039; and &#039;&#039;&#039;foobr&#039;&#039;&#039; but not &#039;&#039;&#039;foobalkj9r&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;fooba{2}r&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;foobaar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;fooba{2,}r&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;foobaar,&#039;&#039;&#039; &#039;&#039;&#039;foobaaar&#039;&#039;&#039;, &#039;&#039;&#039;foobaaaar&#039;&#039;&#039; etc. but not &#039;&#039;&#039;foobar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;fooba{2,3}r&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;foobaar&#039;&#039;&#039;, or &#039;&#039;&#039;foobaaar&#039;&#039;&#039; but not &#039;&#039;&#039;foobaaaar&#039;&#039;&#039; or &#039;&#039;&#039;foobar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=== Alternatives ===&lt;br /&gt;
A RegEx expression can have multiple alternative characters or subexpressions. The metacharacter &#039;&#039;&#039;|&#039;&#039;&#039; is used to separate the alternatives.&lt;br /&gt;
&lt;br /&gt;
For example, &#039;&#039;&#039;fee|fie|foe &#039;&#039;&#039;will match any of &#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;
The first alternative includes everything from the last pattern delimiter (&#039;&#039;&#039;(&#039;&#039;&#039;, &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;, or the beginning of the pattern) up to the first &#039;&#039;&#039;|&#039;&#039;&#039;, and the last alternative contains everything from the last &#039;&#039;&#039;|&#039;&#039;&#039; to the next pattern delimiter. This makes it 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, the above expression can be re-written as &#039;&#039;&#039;f(e|i|o)e&#039;&#039;&#039;,&#039;&#039;&#039; &#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. This means that alternatives are not necessarily greedy. For example, when matching &#039;&#039;&#039;foo|foot&#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;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;RegEx Pattern&#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;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;foo(bar|foo)&#039;&#039;&#039;&amp;lt;/center&amp;gt;&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;|&#039;&#039;&#039; is interpreted as a literal within &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[]&amp;lt;/nowiki&amp;gt;.&#039;&#039;&#039; That means &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[fee|fie|foe]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; is same as &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;[feio|] &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;(the other characters are treated as duplicates, and ignored).&lt;br /&gt;
&lt;br /&gt;
=== Subexpressions ===&lt;br /&gt;
Parts of any RegEx pattern can be enclosed in brackets (), just like using brackets in a mathematics formula. Each part that is enclosed in brackets is called a “&#039;&#039;subexpression”.&#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;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;RegEx Pattern&#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;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;(fee)|(fie)|(foe)&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Much better readability than the equivalent RegEx pattern &#039;&#039;&#039;fee|fie|foe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;(foobar){2,3}&#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;
&lt;br /&gt;
(i.e., matches with &#039;&#039;&#039;foobarfoobar &#039;&#039;&#039;or &#039;&#039;&#039;foobarfoobarfoobar&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&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;foobar{2,3}&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Matches with &#039;&#039;&#039;foob&#039;&#039;&#039; followed by character &#039;&#039;&#039;r &#039;&#039;&#039;repeated 2 or 3 times&#039;&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
(i.e., matches with &#039;&#039;&#039;foobarr &#039;&#039;&#039;or &#039;&#039;&#039;foobarrr&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
(The iterator acts only on the last character.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;foob([0-9]|a+)r&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches only the character &#039;&#039;&#039;foob0r&#039;&#039;&#039;, &#039;&#039;&#039;foob1r &#039;&#039;&#039;, &#039;&#039;&#039;foobar&#039;&#039;&#039;, &#039;&#039;&#039;foobaar&#039;&#039;&#039;, &#039;&#039;&#039;foobaaaar&#039;&#039;&#039;, etc.&lt;br /&gt;
&lt;br /&gt;
(The subexpression is evaluated first.)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
=== Backreferences ===&lt;br /&gt;
You must have told (or heard-) jokes like this one: &lt;br /&gt;
&lt;br /&gt;
“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....”.&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;“backreference”&#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;“backreference”&#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;\n&#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;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;(.)\1+&#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;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;(.+)\1+&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| matches &#039;&#039;&#039;aaaa&#039;&#039;&#039;, &#039;&#039;&#039;cc&#039;&#039;&#039;, &#039;&#039;&#039;abababab&#039;&#039;&#039;, &#039;&#039;&#039;123123 &#039;&#039;&#039;&lt;br /&gt;
&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;blue&#039;&#039;&#039; and &#039;&#039;&#039;pink &#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;
==== Substitution of text using backreference ====&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;\1&#039;&#039;&#039; through &#039;&#039;&#039;\9&#039;&#039;&#039; serve as backreferences to the subexpressions found in the RegEx pattern. The expression &#039;&#039;&#039;\0 &#039;&#039;&#039;is used to represent the text that matches the whole RegEx pattern. These are used in the “find” part of the operation. &lt;br /&gt;
* The expressions &#039;&#039;&#039;$1&#039;&#039;&#039; through &#039;&#039;&#039;$9&#039;&#039;&#039; represent the actual text that matches the &#039;&#039;respective&#039;&#039; subexpressions.These are used in the “replace” part of the operation.&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.&amp;lt;br/&amp;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 “find-and-replace” examples: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Expression&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Replace&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;Description&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;(.*) (.*)&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;$2, $1&#039;&#039;&#039;&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;
&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;&#039;&#039;&#039;\b(\d{2})-(\d{2})-(\d{4})\b&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &amp;lt;center&amp;gt;&#039;&#039;&#039;$3-$2-$1&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| Find date sequences in dd-mm-yyyy format and reverse them into yyyy-mm-dd format. (e.g. 25-10-2007 is converted to 2007-10-25). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: This is not a very robust example, because &#039;&#039;&#039;\d&#039;&#039;&#039; 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;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;\[.*?\]&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
| &amp;lt;nowiki&amp;gt;Remove the contents of the [...] (square brackets), and the brackets too.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Replace with &#039;&#039;nothing&#039;&#039; means &#039;&#039;deleting&#039;&#039;.)&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;For more information:&#039;&#039;&#039;&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;/div&gt;</summary>
		<author><name>SafetyCar</name></author>
	</entry>
</feed>