Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-05-2014
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
CurrToStr sin coma ni puntos

Hola a todos, he buscado y buscado pero no lo encuentro o no existe una función que me convierta un Currency a String pero sin puntos ni comas ej. 1.195,60 a '119560' al darse por entendido que los dos últimos dígitos son los decimales, ya que un aplicativo del SIAP lo requiere así, si alguien sabe del tema, agradeceré su ayuda.
Responder Con Cita
  #2  
Antiguo 13-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Siempre puedes crear tú mismo una sencilla función que los quite.
Responder Con Cita
  #3  
Antiguo 13-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
marilinspi,

Cita:
...una función que me convierta un Currency a String...ej. 1.195,60 a '119560'...
La función en Delphi que convierte un número de coma flotante (Single, Double, Extended, Currency) a String es FloatToStr.

Lo que tu requerimiento sugiere es una función que elimine el formato numérico (Separador de miles y decimales) de un string numérico formateado.

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function NumberToString(Number : String) : String;
var
   SL : TStringList;
   i : Integer;
begin
   SL := TStringList.Create;
   ExtractStrings([',','.'], [], PChar(Number), SL);
   for i := 0 to SL.Count - 1 do
      Result := Result + SL[i];
   SL.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   Number : String;
begin
   Number := '1.234.567.890,99';
   ShowMessage(NumberToString(Number)); // Muestra : 123456789099
end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, convierte un número formateado (String numérico con separador de miles y decimales) en su equivalente sin formato.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 13-05-2014 a las 19:30:20.
Responder Con Cita
  #4  
Antiguo 13-05-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Qué tal algo así?

Código Delphi [-]
function ImprimeCurrency(C: Currency): String;
begin
  Result := IntToStr(Trunc(100*C));
end;

O bien, si necesitas redondeo:

Código Delphi [-]
uses Math;

function ImprimeCurrency(C: Currency): String;
begin
  C := RoundTo(C, -2);
  Result := IntToStr(Trunc(100*C));
end;

// Saludos
Responder Con Cita
  #5  
Antiguo 13-05-2014
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 marilinspi.

Otra opción para quitar los signos:
Código Delphi [-]
function UnformatCurr(const CurrStr: string): string;
begin
  Result:= StringReplace(CurrStr, '$', '',[rfReplaceAll]);
  Result:= StringReplace(Result, '.', '',[rfReplaceAll]);
  Result:= StringReplace(Result, ',', '',[rfReplaceAll]);
end;

Ejemplo de uso:
Código Delphi [-]
  ShowMessage(UnformatCurr('$ 2.500.317,25')); // Resultado:  250031725

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 13-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
marilinspi,

Cita:
...una función que me convierta un Currency a String...ej. 1.195,60 a '119560'...
Otra forma :
Código Delphi [-]
function NumberToString(Number : String) : String;
var
   i : Integer;
begin
   for i := 1 to Length(Number) do
      if Number[i] in ['0'..'9'] then
         Result := Result + Number[i];
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   Number : String;
begin
   Number := '1.234.567.890,99';
   ShowMessage(NumberToString(Number)); // Muestra : 123456789099
end;
Espero sea útil

Nelson.
Responder Con Cita
  #7  
Antiguo 13-05-2014
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
hola, gracias a todos por sus respuestas... lo resolví así
Código Delphi [-]
StringReplace((CurrToStrF(Percepcion,ffFixed,2)), '.', '', [rfReplaceAll])
Gracias
Responder Con Cita
  #8  
Antiguo 13-05-2014
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
Cita:
Empezado por marilinspi Ver Mensaje
hola, gracias a todos por sus respuestas... lo resolví así
Código Delphi [-]
StringReplace((CurrToStrF(Percepcion,ffFixed,2)), '.', '', [rfReplaceAll])
Gracias
Hola marilinspi.

Me alegra que lo hayas solucionado y de forma simple.

Solo quería agregar que ese código, dependiendo del valor que tengas definido como separador decimal, puede no dar solución a lo que solicitabas en el primer mensaje.

Mejor es:
Código Delphi [-]
   StringReplace((CurrToStrF(Percepcion,ffFixed,2)), DecimalSeparator, '', [rfReplaceAll]);

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 14-05-2014
marilinspi marilinspi is offline
Miembro
 
Registrado: ene 2007
Posts: 136
Poder: 18
marilinspi Va por buen camino
Gracias Ecfisa, muy buena tu sugerencia...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
SQL y coma decimal mjjj SQL 3 26-12-2008 22:18:51
La importancia de una coma. marcoszorrilla La Taberna 5 16-07-2008 16:28:58
Sustituir punto por coma Carlos Arevalo Varios 3 13-10-2005 23:19:40
xml punto coma carlomagno Varios 2 06-09-2004 11:49:35
Coma Investment Humor 1 02-07-2003 10:45:07


La franja horaria es GMT +2. Ahora son las 07:54:00.


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