Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-12-2007
Franksxs Franksxs is offline
Miembro
 
Registrado: feb 2007
Posts: 11
Poder: 0
Franksxs Va por buen camino
HOla, El codigo que proporciono marcoszorrilla esta muy bueno y se le agradece la ayuda; pero solo hay un problema.

no convierte decimales y necesito que convierta decimales, alguno de ustedes podria pasarme un codigo que convierta tambien decimales?

gracias por su atención
Responder Con Cita
  #2  
Antiguo 29-12-2007
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
El código recuerdo haberlo modificado con la entrada del Euro, finalmente lo he encontrado:

Código Delphi [-]
function IntToLetras(Numerosouble):String;

        function xIntToLetras(Valor:LongInt):String;
        const
         aUnidad : array[1..15] of String =
           ('UN','DOS','TRES','CUATRO','CINCO','SEIS',
            'SIETE','OCHO','NUEVE','DIEZ','ONCE','DOCE',
            'TRECE','CATORCE','QUINCE');
         aCentena: array[1..9]  of String =
           ('CIENTO','DOSCIENTOS','TRESCIENTOS',
            'CUATROCIENTOS','QUINIENTOS','SEISCIENTOS',
            'SETECIENTOS','OCHOCIENTOS','NOVECIENTOS');
         aDecena : array[1..9]  of String =
          ('DIECI','VEINTI','TREINTA','CUARENTA','CINCUENTA',
           'SESENTA','SETENTA','OCHENTA','NOVENTA');
        var
         Centena, Decena, Unidad, Doble: LongInt;
         Linea: String;
        begin
         if valor=100 then Linea:=' CIEN '
         else begin
           Linea:='';
           Centena := Valor div 100;
           Doble   := Valor - (Centena*100);
           Decena  := (Valor div 10) - (Centena*10);
           Unidad  := Valor - (Decena*10) - (Centena*100);

           if Centena>0 then Linea := Linea + Acentena[centena]+' ';

           if Doble>0 then begin
             if Doble=20 then Linea := Linea +' VEINTE '
               else begin
                if doble<16 then Linea := Linea + aUnidad[Doble]
                  else begin
                       Linea := Linea +' '+ Adecena[Decena];
                       if (Decena>2) and (Unidad<>0) then Linea := Linea+' Y ';
                       if Unidad>0 then Linea := Linea + aUnidad[Unidad];
                  end;
               end;
           end;
         end;
         Result := Linea;
        end;

      var
         Millones,Miles,Unidades,numero: Longint;
         Linea : String;
         entero,decimal:variant;
         n1,n2: Double;

      begin
      entero:=Int(numeros);
      decimal:=Abs(frac(numeros) * 100);
      numero:=entero;
        {Inicializamos el string que contendrá las letras según el valor
        numérico}
        if numero=0 then
        Linea := 'CERO'
        else if numero<0 then Linea := 'MENOS '
             else if numero=1 then
                  begin
                    Linea := 'UN';
                    //exit
                  end
                  else if numero>1 then Linea := '';

        {Determinamos el Nº de millones, miles y unidades de numero en
        positivo}
        Numero   := Abs(Numero);
        Millones := numero div 1000000;
        Miles     := (numero - (Millones*1000000)) div 1000;
        Unidades  := numero - ((Millones*1000000)+(Miles*1000));

        {Vamos poniendo en el string las cadenas de los números(llamando
        a subfuncion)}
        if Millones=1 then Linea:= Linea + ' UN MILLON '
        else if Millones>1 then Linea := Linea + xIntToLetras(Millones)
                                         + ' MILLONES ';

        if Miles =1 then Linea:= Linea + ' MIL '
        else if Miles>1 then Linea := Linea + xIntToLetras(Miles)+
                                      ' MIL ';

        if Unidades >0 then
        Linea := Linea + xIntToLetras(Unidades);

         //Nuevo para decimales
          numero:=decimal;
          Linea:=Linea +' Euros';

      if numero > 0 then
      begin
      Linea:=Linea +' y ';

         if numero=1 then
                  begin
                    Linea :=Linea + 'UN';
                  end
                  else if numero>1 then Linea := Linea+'';

        {Determinamos el Nº de millones, miles y unidades de numero en
        positivo}
        Numero   := Abs(Numero);
        Millones := numero div 1000000;
        Miles     := (numero - (Millones*1000000)) div 1000;
        Unidades  := numero - ((Millones*1000000)+(Miles*1000));

        {Vamos poniendo en el string las cadenas de los números(llamando
        a subfuncion)}
        if Millones=1 then Linea:= Linea + ' UN MILLON '
        else if Millones>1 then Linea := Linea + xIntToLetras(Millones)
                                         + ' MILLONES ';

        if Miles =1 then Linea:= Linea + ' MIL '
        else if Miles>1 then Linea := Linea + xIntToLetras(Miles)+
                                      ' MIL ';

        if Unidades >0 then
        Linea := Linea + xIntToLetras(Unidades);

        linea:=Linea+' cents';
     end;

        IntToletras:=Linea;
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 20-01-2008 a las 10:33:04.
Responder Con Cita
  #3  
Antiguo 29-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Este hilo es muy viejo, pero se reactivo por alguna razón.
No se si sera la versión 2, pero este es el que me pasaste Dec. en algún momento.
Saludos

Última edición por Caral fecha: 24-01-2008 a las 22:35:13.
Responder Con Cita
  #4  
Antiguo 29-12-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sí; creo que es el mismo que se encuentra en el TeraWiki.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 20-01-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 19
jirbert Va por buen camino
marcoszorrilla gracias!!! con respecto al cod. el primero me funciono de perfectamente,, pero el segundo que generastes para los decimales no me funciona en la parte de las variables cuando se cren,
var
Millones,Miles,Unidades,n: LongInt;
Linea : String;
entero,decimal:variant;

n1,n2ouble; --> esta variable me dice: undeclared identifier: 'ouble'

te agradeceria la ayuda!!!

saludos!!!
gracias!!!
Responder Con Cita
  #6  
Antiguo 20-01-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pareciera que es una errata, y, que, donde dice:

Código Delphi [-]
n1,n2ouble;

Debe decir:

Código Delphi [-]
n1,n2: double;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 20-01-2008
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
Ya lo he arreglado, pero no era ni error ni errata, ya me ha pasado otra vez, es el "parser", que se ve no le gusta la combinación esa:

Código Delphi [-]
      var
         Millones,Miles,Unidades,numero: Longint;
         Linea : String;
         entero,decimal:variant;
         n1,n2ouble;


Código Delphi [-]
      var
         Millones,Miles,Unidades,numero: Longint;
         Linea : String;
         entero,decimal:variant;
         n1,n2: Double;


La primera y la segunda son exactamente iguales, pero en la primera no hay un espacio entre los dos puntos y Double.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #8  
Antiguo 20-01-2008
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 24
ixMike Va por buen camino
Llego tarde, pero en trucomanía hay una función que hace exactamente lo mismo (no sé si con decimales funciona).

Salu2.
Responder Con Cita
  #9  
Antiguo 20-01-2008
Avatar de jirbert
jirbert jirbert is offline
Miembro
 
Registrado: nov 2007
Ubicación: Valencia-Venezuela
Posts: 60
Poder: 19
jirbert Va por buen camino
gracias a todos.. bueno ya modifique la variable como em dijeron!!! y la verifico perfectamente pero en la parte de

xIntToLetras:=Linea;

me dice lo siguiente:

not enough actual parameters

de verdad gracias a todos y disculpen la molestia...
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
Componente Atexto vientos Varios 8 13-10-2010 07:01:35
Consulta sobre el componente ADOQuery s_e_montes Varios 2 02-02-2006 20:08:36
Consulta sobre componente Enan0 Varios 6 17-11-2005 15:49:55
ayuda sobre componente database srangel Firebird e Interbase 1 28-07-2005 22:45:31
Consulta sobre el componente TQRexp DanielAlexander Impresión 11 27-06-2003 23:01:28


La franja horaria es GMT +2. Ahora son las 19:40:35.


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
Copyright 1996-2007 Club Delphi