Ver la Versión Completa : Extraer última palabra de una frase
Abuelo7
19-10-2008, 10:34:06
Hola a todos.
Quisiera saber como puedo extraer y guardar en una variable, la ultima palabra de cualquier frase introducida en un Edit.Text..
Sin que importe la longitud de la frase.
Gracias de antemano a todos.
Saludos
Manuel
marcoszorrilla
19-10-2008, 10:56:27
Aunque habrá otras formas de momento he preparado este ejemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
l:Integer;
P:String;
begin
S:=Trim(Edit1.Text);
l:=Length(s);
While (l > 0) and (s[l] <> ' ')do
begin
l:=l-1;
end;
p:=copy(S,l,Length(s));
ShowMessage(p);
end;
Un Saludo.
Abuelo7
19-10-2008, 11:19:57
Gracias amigo MarcosZorrilla.
Me has sido de gran ayuda.
Saludos.
Hola, tambien puedes usar strRscan
result := strRscan(PChar(s),' ') + 1;
EDITO : si no se encuentra ' ', entonces strRscan da nil por lo que result := nil + 1 y excepcion correspondiente. lo correcto seria hacer : if Pos(' ',s) then result := strRscan(PChar(s),' ') + 1 o bien comprobar de otra manera que strRscan no es nil. Saludos.
marcoszorrilla
19-10-2008, 20:41:59
Muy buena idea, pero es necesario utilizar Trim por si tuviera espacios al final de la frase.
var
s:String;
begin
s:=edit1.text;
ShowMessage(strRscan(PChar(Trim(s)),' ') + 1);
end;
Un Saludo.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.