Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Encontrar ultima ocurrencia de subcadena (https://www.clubdelphi.com/foros/showthread.php?t=59556)

hmoner 31-08-2008 22:41:06

Encontrar ultima ocurrencia de subcadena
 
Hola a todos
Como muchos sabran, la funcion pos() retorna el indice de la primer ocurrencia de una subcadena dentro de una cadena principal.

Estoy buscando una funcion, o algo de codigo que me permita encontrar la ultima ocurrenca de una subcadena dentro de otra

Estuve intentando hacerlo yo mismo (sin buenos resultados) con un Repeat -> Until

Alguien tiene alguna mejor idea? Gracias :D

xEsk 31-08-2008 23:07:11

Hola, puedes usar la función: "LastDelimiter".

Saludos

roman 01-09-2008 04:59:44

A mi se me ocurre buscar el reverso de la subcadena en el reverso de la cadena y luego tomar el complemento de la posición encontrada respecto a la longitud de la cadena tomando en cuenta la longitud de la subcadena :D

O sea:

Código Delphi [-]
uses StrUtils;

function LastPos(Substr, S: String): Integer;
var
  I: Integer;

begin
  I := Pos(ReverseString(Substr), ReverseString(S));

  if I > 0 then
    Result := Length(S) - Length(Substr) + 2 - I
  else
    Result := 0;
end;

// Saludos

hmoner 01-09-2008 13:42:50

Muchisimas gracias por la ayuda
Ambas me parecen soluciones perfectas.

Saludos!

tcp_ip_es 01-09-2008 15:42:10

Preguntita al gran Roman: ¿Desde qué versión de delphi se incluye la libreria StrUtils?
Yo es que sigo con D5 y creo que esa librería no la tengo .....

roman 01-09-2008 15:55:59

Cita:

Empezado por tcp_ip_es (Mensaje 310715)
¿Desde qué versión de delphi se incluye la libreria StrUtils?

Creo que desde la versión 6. Pero con todo gusto te regalo esta función

Código Delphi [-]
function ReverseString(S: String): String;
var
  I: Integer;

begin
  Result := '';

  for I := 1 to Length(S) do
    Result := S[i] + Result;
end;

// Saludos

tcp_ip_es 01-09-2008 16:20:42

je je je muchas gracias, me ire componiendo mi propio tcp_StrUtils :D


La franja horaria es GMT +2. Ahora son las 19:55:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi