Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda Urgente (https://www.clubdelphi.com/foros/showthread.php?t=5901)

Nelson Alberto 10-12-2003 12:02:31

Ayuda Urgente
 
cualquier forista que me pueda ayudar, resulta que tengo en un edit un valor numérico de 115.36

pues bien lo que a mi me interesa es solo los dos espacios decimales los 36 centavos y no se como suprimir los demas numeros. quisiera me ayuden lo mas rapido posible por que en otros lenguaje usamos la funcion ltrim y no se como se usa en delphi.

gracias de antemano

delphi.com.ar 10-12-2003 14:42:14

Primero leete la Guía de Estilo.

¿En qué lenguaje se utiliza ltrim con este fin?... Puedes hacerlo buscando el punto con la función Pos y cortando el resto con la función Copy. En las últimas versiones de delphi, tienes mas funciones que te pueden ser útiles en la unit StrUtils.
Si trabajas con números reales, puedes obtener la parte decimal con la función frac.

Saludos!

marcoszorrilla 10-12-2003 15:05:22

Hola Nelson, según te apunta mi compañero Delphi.com, cosa que ya habrás leido supongo en la Guía de Estilo de los Foros, el título de las preguntas, debe describir el problema en la mayor medida posible y de esta manera se podrá solucionar con mayor rapidez, el poner ayuda urgente como título es contraproducente.

Las soluciones a lo que preguntas, teniendo en cuenta que no se puede resolver con lTrim, función que también existe en Delphi, TrimLeft ya que esta función lo único que hace es quitar los espacios por la izquierda, cosa normalmente no aplicable a un Edit, puesto que generalmente tendrá alineación izquierda.

Las soluciones que te propone Delphi.com son las más apropiadas, ahora bien si siempre se va a tratar de un edit y siempre va a tener 2 decimales, sería más simple este código, que pongo a modo de ejemplo, faltaría adaptarlo a tus necesidades.
Código:

ShowMessage(Copy(Edit1.text,Length(Edit1.Text)-1,2));
Un Saludo.

Nelson Alberto 10-12-2003 15:23:39

Muy agradecido y les pido perdon, en la proxima seré mas explicito y expondre el tema, voy a probar sobre la explicacion que me dieron.


De Paso les deseo feliz navidad a todos los foristas

marcoszorrilla 10-12-2003 15:33:41

Muchas gracias por la felicitación te deseo lo mismo y sino te funciona el código no dudes en preguntar.

Un Saludo.

fjcg02 11-12-2003 15:45:06

Si no me equivoco existen las funciones rifth y left, que sirven para devilver los caracteres a isquierda o derecha que le pasas como parámetro.

Espero que os sirva de ayuda.

Por cierto, las funciones trim, alltrim, rtrim, etc yo las conocía de clipper y dbase, del año en que Franco era corneta.

marcoszorrilla 11-12-2003 15:54:30

La verdad es que no existen estas funciones que mencionas en Delphi, en su defecto se utiliza la función Copy() algo similar al Substr() de Clipper.

Se puede crear un sucedaneo, por ejemplo:
Código:

function RighString(Instring: String; Len:Integer):string;
begin
 Result:=Copy(Instring,Succ(Length(InString) - Len), Len);
end;

Un Saludo.

Descendents 11-12-2003 16:07:24

Hola
marcos, supongo que se refiere a leftstr o rightstr.
estas si que existen.

ejemplo1
var
s,r:string;
begin
s:='HOLA';
r := leftStr(s,2);
showmessage(r); // este sera HO
end;

ejemplo2
var
s,r:string;
begin
s:='HOLA';
r := rightStr(s,2);
showmessage(r);// este sera LA
end;

Saludos

acertij022 11-12-2003 16:48:28

procedure TForm1.BitBtn1Click(Sender: TObject);
var
Str1 : string;
i : Integer;
begin
Str1:=188.25;
for i:=1 to length(Str1)do
if Str1[i]='.' then
begin
Str1 := copy(Str1,i+1,Length(Str1));
// esto es por si tiene mas de 2 caracteres la parte decimal ej(188.2556)
Break;
end;
Showmessage(Str1);
end;

Espero que te sea de utilidad ;)

marcoszorrilla 11-12-2003 17:57:51

Hola descendents:
¿De qué versión de Delphi estamos hablando?

Que yo sepa, hasta la versión 5 incluida, no existian estas funciones, no tengo a mano ahora la 7 donde creo recordar que si existen, incluso en la 6.

Un Saludo.

__cadetill 11-12-2003 18:04:21

Cita:

marcoszorrilla comentó:
...incluso en la 6.
Te confirmo que a partir de Delphi 6 sí existen

Cita:

marcoszorrilla comentó:
Un Saludo.
Otro para ti ;)

fjcg02 11-12-2003 18:22:54

Perdonad, yo me refería a right y left ( derecha e izquierda ). Es que estaba merendando, y con la boca llena no se me entiende muy bien.

Un saludo

marcoszorrilla 11-12-2003 18:34:27

Ya me parecía haber visto partículas de mortadela sobre el monitor, no obstante estas funciones que citas existen en Clipper pero no en Delphi.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 22:03:33.

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