Skip to content

StringReplace Function

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.