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 26-09-2012
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
Cool Quitar Puntos a Numeros

hola manejo delphi 7.

tengo unos datos numericos que poseen decimas
ej: x= 1.200,34


quiero quitarle los puntos a los miles y que las decimas me salgan con puntos.

a los que quieran saber es para armar un archivo plano.

el dato quedaria asi:

x= 1200.34

gracias espero me allan entendido lo k kiero.
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #2  
Antiguo 26-09-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
ansireplacestr

puedes utilizar la funcion ansireplacestr

en esta pagina se explica mejor
http://delphiallimite.blogspot.mx/20...-texto-ii.html

Saludos
__________________
un tipo al cual la sociedad no le tiene el mas mínimo respeto no puede ser presidente....
Responder Con Cita
  #3  
Antiguo 26-09-2012
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Deberías hacer uso de DecimalSeparator y ThousandSeparator:

Código Delphi [-]
procedure TForm3.Button1Click(Sender: TObject);
var
value:Single;
begin
     value:=1200.34;

     Memo1.Lines.Add('Value:'+FloatToStr(value));

     {Cambio Decimal=, Miles=.}
     FormatSettings.DecimalSeparator:=',';
     FormatSettings.ThousandSeparator:='.';

     Memo1.Lines.Add('(9.999,9) Value:'+formatFloat('#,###.0',value));

     {Cambio Decimal=. Miles=,}
     FormatSettings.DecimalSeparator:='.';
     FormatSettings.ThousandSeparator:=',';

     Memo1.Lines.Add('(9,999.9) Value:'+formatFloat('####.0',value));
end;

Espero te ayude, saludos cordiales
Responder Con Cita
  #4  
Antiguo 26-09-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Código Delphi [-]
...
var
  s: string;
begin
  s := '1.200,34';
  s := StringReplace(s, '.', '', [rfReplaceAll]);
  s := StringReplace(s, ',', '.', [rfReplaceAll]);
  ShowMessage(s);
  ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 26-09-2012 a las 19:41:43.
Responder Con Cita
  #5  
Antiguo 26-09-2012
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
exacto eso era lo que necesitaba.
gracias x su ayuda
pienso k el ultimo esta bien entendible , sin desmeritar a los demas

gracias a todos x su atención.
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #6  
Antiguo 27-09-2012
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pero más vale entiendas el fondo de la cuestión.

Un número no tiene ni puntos ni comas. Eso es el formato que se le añade cuando el número se convierte a texto con formato y el "decimalseparator" es precisamente lo que se usará cuando se quiere cambiar a texto.

Haciendo un stringReplace:
- primero: dejas que el sistema use el punto y la coma de forma errónea para la conversión a texto
- segundo: buscas en el texto carácter a carácter para reemplazar el punto por la coma. Encima son 2 reemplazos consecutivos.

Si desde el primer momento estableces el separador decimal y de miles, haces un programa eficiente.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 27-09-2012
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Y que pasaría si:

Código Delphi [-]
var
  s: string;
begin
  //Que pasaría si cambio el formato del número a:
  s := '1,200.34'; //1.200,34
  s := StringReplace(s, '.', '', [rfReplaceAll]);  // 1,20034
  s := StringReplace(s, ',', '.', [rfReplaceAll]); // 1.20034

  ShowMessage(s); //1.20034 ?
  ...

Creo que no es la mejor forma...
Saludos cordiales
Responder Con Cita
  #8  
Antiguo 27-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
je, je, je...
Código Delphi [-]
var
  s:string;
begin
  s := '1,200.34';
  s := StringReplace(s, '.', '@', [rfReplaceAll]); // 1,200@34
  s := StringReplace(s, ',', '.', [rfReplaceAll]); // 1.200@34
  s := StringReplace(s, '@', ',', [rfReplaceAll]); // 1.200,34
  ShowMessage(s);
end;
Responder Con Cita
  #9  
Antiguo 27-09-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

No había reparado que el dato estaba en formato numérico:
Cita:
Empezado por ingabraham Ver Mensaje
tengo unos datos numericos que poseen decimas
En ese caso:
Código Delphi [-]
var
 s : string;
 ch: Char;
begin
  ch := DecimalSeparator;
  DecimalSeparator := '.';
  s  := FormatFloat('0.00', ValorNumerico);
  DecimalSeparator := ch;
  ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 27-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
Depende de la base de datos, el aspecto visual de la data se puede corregir en lo que se llama "collation" y son ajustes parametrizados, o pueden formar parte de un query o meta-comando. La data guardada sigue igual.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Puntos de observacion santi33a Lazarus, FreePascal, Kylix, etc. 4 16-05-2012 13:41:52
Poner puntos a los números mayores de 999 y hasta 1M Pedro-Juan Trucos 2 26-12-2007 19:13:08
Quitar todos los números de una cadena dec Trucos 0 07-06-2006 20:04:33
quitar numeros en un string davidgaldo Varios 3 24-09-2004 00:10:56
Puntos Carlex Varios 2 23-09-2004 14:44:09


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


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