La función de Delphi StringReplace, declarada en la Unit System.SysUtils, reemplaza una o todas las ocurrencias de una subcadena dentro de una cadena.
Esta función es verdaderamente útil y muy utilizada en el manejo de cadenas dentro de Delphi. Así como la función Pos, nos indica la posición de una cadena dentro de otra, esta la reemplaza y ambas funciones se pueden utilizar juntas para un manejo completo de cadenas.
Declaración Delphi StringReplace Function
La declaración para la función StringReplace es la siguiente:
function StringReplace(const SourceString, OldPattern, NewPattern: string; Flags: TReplaceFlags ): string;
En la declaración de la función ReplaceString vemos que nos solicita 4 parámetros y retorna una cadena con el resultado.
SourceString: en este parámetros, debemos enviar la cadena en donde se buscará y se reemplazará por otra.
OldPattern: especifica que cadena buscará para reemplazar.
NewPattern: indica la nueva cadena que reemplazará a OldPattern.
Delphi StringReplace Flags
El cuarto parámetro es Flags, es tan importante que decidimos explicarlo por separado.
El parámetro Flags es de tipo TReplaceFlags y le podemos dar los siguientes valores:
- rfReplaceAll: Si colocamos la bandera rfReplaceAll, estamos indicando que se deben reemplazar todas las ocurrencias encontradas, de lo contrario, si no la colocamos, reemplazará solo la primer ocurrencia encontrada dentro de SourceString.
- rfIgnoreCase: Si colocamos la bandera rfIgnoreCase, estamos indicando a la función que no tenga en cuenta la distinción entre mayúsculas y minúsculas. Si no colocamos el indicados mencionado, estamos deduciendo que se debe tener en cuenta la distinción entre mayúsculas y minúsculas, así que hay que tener mucho cuidado según lo que pretendamos realizar.
Delphi StringReplace example
uses
System.SysUtils;
...
var
vCadena: string;
begin
// Reemplazamos la cadena "con" por la cadena "de"
vCadena := 'Ejemplo con la función StringReplace con Delphi, RadStudio 10.3.3';
ShowMessage(StringReplace(vCadena, 'con', 'de', [rfReplaceAll, rfIgnoreCase]));
// Este ejemplo retorna;
// Ejemplo de la función StringReplace de Delphi, RadStudio 10.3.3
end;
Importante: La función StringReplace fue diseñada para para ser utilizada con variables UnicodeString, pero si se desea utilizarla con variables AnsiString , se debe utilizar la función System.AnsiStrings.StringReplace, en cambio, si queremos trabajar con WideString, utilizaremos System.WideStrUtils.WideStringReplace.