PDA

Ver la Versión Completa : Problema con function Pos()


Anel Hernandez
12-11-2012, 18:44:24
Hola,

quisiera encontrar la posicion del primer caracter encontrado en una cadena. Yo necesito encontrar el ultimo caracter en una cadena con caracteres repetidos; el primero contando de derecha a izquierda.

Hay alguna forma sencilla de lograrlo que no sea, cortar cadenas y usar substrings, es decir, una sola function y ya?

gracias

roman
12-11-2012, 19:22:19
No sé si exista alguna función predefinida pero en todo caso es muy sencillo hacerse de una:


function LastPos(S: String; Ch: Char): Integer;
var
I: Integer;

begin
Result := 0;

if S = '' then
exit;

for I := Length(S) downto 0 do
if S[I] = Ch then
begin
Result := I;
break;
end;
end;


// Saludos

ecfisa
12-11-2012, 19:30:27
Hola,

quisiera encontrar la posicion del primer caracter encontrado en una cadena. Yo necesito encontrar el ultimo caracter en una cadena con caracteres repetidos; el primero contando de derecha a izquierda.

Hay alguna forma sencilla de lograrlo que no sea, cortar cadenas y usar substrings, es decir, una sola function y ya?

gracias
Hola.

No hay ninguna función predefinida que lo realice, pero podés implementar una:

uses StrUtils;

function RightPos(Buscado,Cadena: string): Integer;
begin
Result:= Pos(ReverseString(Buscado), ReverseString(Cadena));
if Result > 0 then
Result := Length(Cadena)-Result-Length(Buscado)+2
end;


Saludos.

Edito: Ups!, no ví el mensaje de roman, mientras escribía y hacía una o dos comprobaciones :o, pero veo que coincidimos en que hay que hacerce una función :)