Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2003
DML DML is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina
Posts: 16
Poder: 0
DML Va por buen camino
Unhappy Como le saco la coma o el punto a un número?

como le saco la coma o el punto a un número?
Estos ejemplos son de tamaños, el que es con coma es de win98 el de los puntos es de WinME.

Ej: 1,024,000 o 1.024.000 -----> 1024000
Responder Con Cita
  #2  
Antiguo 21-06-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No veo clara tu pregunta. Si es un número no tendrá puntos ni comas como separador de millares, sino que dependerá del formato con que se muestre, es decir que el mismo número podrá verse con separador de millares o sin él, dependiendo del formato que le apliquemos.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 21-06-2003
igest2000 igest2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Oviedo
Posts: 47
Poder: 0
igest2000 Va por buen camino
Veamos no se si lo que tu te refeires, es que a ti te pasan una cadena con ese formato y quieres guardarla en una variable de tipo numerico (integer por ejemplo) o no.

SI es esto... usa StrToInt que creo que te sirve... sino deberías hacer lo siguiente:

Recorrer a cadena, y si la posicion actual es un numero la pasas a otra auxiliar y si es una coma o un punto no las metes en la auxiliar. De esta forma en la cadena auxliar te quedaría un numero al cual, ya le puedes apicar StrToInt (o lo que sea.. StrToFloat,...)

function quitaseparadores (cad: string): string;
var aux: string;
i,,jlong: integer;
begin
long:=cad[0]; // sacamos la longitud de la cadena original
j:=1; // sirve para indicar donde se inserta en la cadena aux
for i:=1 to long do
if ((cad[i]<>',')and(cad[i]<>'.') then
begin
aux[j]:=cad[i]; // copio en la cadena auxiliar
inc(j); // aumento j para insertar en la siguiente posicion
end;
end;

Espero que no tenga muchos fallo este codigo....
__________________
=================
El destino esta marcado
y ellos lo saben.
=================
Responder Con Cita
  #4  
Antiguo 23-06-2003
elpinjum elpinjum is offline
No confirmado
 
Registrado: jun 2003
Ubicación: Alicante
Posts: 23
Poder: 0
elpinjum Va por buen camino
Para añadir algo al mensaje anterior, decir que delphi nos proporcina una serie de variables en las que nos dice que simbolo se esta usando para los separadores de miles, los decimales, el separador de fechas, ya que todo esto puede cambiar segun la configuración del ordenador (ver configuracion regional del panel de control de windows si no sabes de lo que te estoy hablando).

Si utilizas la variable "THOUSANDSEPARATOR" esta te devolvera el separador de decimales que esta usando windows en ese momento.

Por lo que propongo que el codigo del IF mandado en el mensaje anterior se sustituya por el siguiente:

if (cad[i]<>THOUSANDSEPARATOR) then

Con lo que siempre te funcionara el codigo sea cual sea tu configuracion en windows.
Responder Con Cita
  #5  
Antiguo 23-06-2003
chutipascal chutipascal is offline
Miembro
 
Registrado: may 2003
Ubicación: Mallorca
Posts: 194
Poder: 22
chutipascal Va por buen camino
En el panel de control->configuración regional->Número puedes cambiar el simbolo de separación de miles, puedes poner nada si te apetece.

Las variables de entorno de los separadores de miles y etc... solo tienen que ver con la presentación en pantalla o impresora (cuando windows escribe el número en un canvas) o cuando transformas un tipo númerico a cadena con por ej.: FloatToStr(x);
Si tratas los números como real, integer, currency puedes operar con ellos sin que te afecten las comas o los puntos.

Un saludo.

Última edición por chutipascal fecha: 23-06-2003 a las 09:50:35.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:29:35.


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