CopyEntre: Devuelve una substring situada entre dos delimitadores  

Enviado Por: Radikal (Q3 Team)
Web : http://www.q3.nu
Email: radikal@q3.nu
Fecha: 03/08/20

Truco accedido 107 veces

 


Otra función para manejar strings: CopyEntre
Nos devuelve la substring contenida entre dos separadores.

Por ejemplo:

 Cadena:='213123123[bloke]Example[/bloke]23423423245';
 Trozo:=CopyEntre(Cadena,'[bloke]','[/bloke]';


Trozo valdría: 'Example'

Añadir 'StrUtils' en la linea uses.

   function CopyEntre(Cadena:string; Desde,Hasta:string):string;
   {
    ATENCION: Uses StrUtils para PosEx
    Devuelve una sub-string de la string 'Cadena' comprendida
    entre 'Desde' y 'Hasta'
    Ejemplo:
            Cadena:='213123123[bloke]Devuelve esto[/bloke]23423423245';
            Trozo:=CopyEntre(Cadena,'[bloke]','[/bloke]';
    Trozo valdría: 'Devuelve esto'
   }
   var
     Inicio,Final: integer;
   begin
     Result:='';
     Inicio:=Pos(Desde,Cadena)+Length(Desde);
     Final :=PosEx(Hasta,Cadena,Inicio);
     If (Inicio>0) and (Final>Inicio) then Result:=Copy( Cadena, Inicio, Final-Inicio );
   end;