PDA

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.

coso
19-10-2008, 18:13:41
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.