PDA

Ver la Versión Completa : como se elimina un carecter de un string...


ronimaxh
23-08-2004, 20:39:46
Hola amigos del club, la pregunta es como elimino por la derecha el ultimo caracter. ejemplo: Cadena del string : 'esto es lo que quiero hacer' quiero que se elimine la 'r' 'esto es lo que quiero hace'

yusnerqui
23-08-2004, 20:53:55
Hola creo que esta es tu solución

function EliminaUltimo(Cadena: String): String;
begin
delete(cadena,length(cadena),1);
Result := Cadena;
end;



un saludo

ronimaxh
23-08-2004, 21:17:53
Gracias por contestar, me da este error:

[Error] Unit1.pas(99): Too many actual parameters
[Error] Unit1.pas(99): Too many actual parameters
[Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'


nota: asi fue que lo puse codigo: delete(mtabla,length(mtabla),1);

JoseBozzano
23-08-2004, 21:31:11
hola amigo, tambien da el mismo resultado que el anterior...

//Ej:
//funcion llamadora...

form1.Label1.Caption:=EliminaUltimo('12345');



//funcion llamada...
function EliminaUltimo(Cadena: String): String;
var
largo:integer;
begin
largo:=length(cadena);
cadena:=copy(cadena,1, largo - 1);
Result := Cadena;
end;
//RE: '1234'

nefy
23-08-2004, 21:33:54
Depende de que usaras. Un ejemplo con un Edit (lo mas comun):

l:=Edit1.GetTextLen;
a:=Edit1.Text;
a[l]:=' ';
Edit1.Text:=a;

Salu2

roman
23-08-2004, 21:38:40
l:=Edit1.GetTextLen;
a:=Edit1.Text;
a[l]:=' ';
Edit1.Text:=a;


Pero esto no elimina el último caracter, sólo lo sustituye por un espacio.

// Saludos

Gydba
23-08-2004, 21:39:30
Hola,

Realmente hay muchas formas de hacerlo. Otra, aunque no es la que elegiría, es utilizar las funciones de la unit StrUtils:

ShowMessage(LeftStr('esto es lo que quiero hacer', Length('esto es lo que quiero hacer') - 1));

Bye...

ronimaxh
23-08-2004, 21:55:51
gracias esta si me funcionó bien

nefy
23-08-2004, 21:57:49
Haber q tal esta Roman ;)

a:='';
for l:=1 to (Edit1.GetTextLen-1) do
begin
a:=a+Edit1.Text[l];
end;
Edit1.Text:=a;

roman
23-08-2004, 22:00:42
Haber q tal esta Roman ;)


¡Hombre! sí claro, pero es una forma rebuscada de hacer

Edit1.Text := Copy(Edit1.Text, 1, Length(Edit1.Text) - 1);

;)

// Saludos

nefy
23-08-2004, 22:03:53
Vaya que se darle sabor a mi vida. Jamas pense en el Copy.

Salu2.