Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Convertir numero a letras

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Convertir numero a letras Responder citando

hola,
mi problema es el siguiente.

resulta que quiero convertir un numero entero a letras.
ej: 1520 return MIL QUINIENTOS VEINTE

Gracias por tu ayuda
_________________
NINGUNO DE NOSOTROS ES TAN BUENO,
COMO TODOS NOSOTROS
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

te mando una funcion que lo realiza, dentro de la pagina principal del foro exite una DLL, enviada por ZIC, (www.arrakis.es/~rporcar), para convertirla, pero a qui pongo un codigo, para hacerlo.., es un poco larga
la funcion se llama NoToLet(), y le pasas como parametro una cadena para representar el numero

Ejemplo
Label1->Capition = NoToLet("56342");

y este es el codigo fuente.. se pude mejorar.. y espero que me envies la respuesta
Código:

// Funcion que convierte un numero a su representacion en letras
// por Cesar Salazar Gonzalez.
char *NoToLet(const char *A){
   const char *numero=A;
   char Letras[140];
   int  p,l=0,des;
   p=0;
   Letras[0]='\0';
   char N1='0',N2='0',N3='0';
   int ancho=strlen(numero);
   int ancho2=strlen(numero);
   while(l<=ancho-1){

      if(ancho2-3==0 || ancho2-6==0 || ancho2-9==0){
         p=3;
         des=3;
      }
      if(ancho2-3==-1 || ancho2-6==-1 || ancho2-9==-1){
         p=2;
         des=2;
      }
      if(ancho2-3==-2 || ancho2-6==-2 || ancho2-9==-2){
         p=1;
         des=1;
      }
///////////////////// numeros de Cienes.
      if(p==3){
         N1=numero[l];
         N2=numero[l+1];
         N3=numero[l+2];
         switch(N1){
            case '0':
                  l++;
                  p--;
                  break;
            case '1':
                  if(N2=='0' && N3=='0'){
                     strcat(Letras," Cien ");
                     l+=2;
                     p-=2;
                  }else{
                     strcat(Letras," Ciento ");
                     l++;
                     p--;
                  }
                  break;
            case '2':
                  strcat(Letras," Doscientos ");
                  l++;
                  p--;
                  break;
            case '3':
                  strcat(Letras," Trescientos ");
                  l++;
                  p--;
                  break;
            case '4':
                  strcat(Letras," Cuatroscientos ");
                  l++;
                  p--;
                  break;
            case '5':
                  strcat(Letras," Quinientos ");
                  l++;
                  p--;
                  break;
            case '6':
                  strcat(Letras," Seiscientos ");
                  l++;
                  p--;
                  break;
            case '7':
                  strcat(Letras," Setecientos ");
                  l++;
                  p--;
                  break;
            case '8':
                  strcat(Letras," Ochocientos ");
                  l++;
                  p--;
                  break;
            case '9':
                  strcat(Letras," Novecientos ");
                  l++;
                  p--;
                  break;
         }
      }
///////////////////// numeros de decenas.
      if(p==2){
         N1=numero[l];
         N2=numero[l+1];
         switch(N1){
            case '0':
                  l++;
                  p--;
                  break;
            case '1':
                  if(N2!='0'){
                     switch(N2){
                        case '1':strcat(Letras," Once ");
                              break;
                        case '2':strcat(Letras," Doce ");
                              break;
                        case '3':strcat(Letras," Trece ");
                              break;
                        case '4':strcat(Letras," Catorce ");
                              break;
                        case '5':strcat(Letras," Quince ");
                              break;
                        case '6':strcat(Letras," Diesciseis ");
                              break;
                        case '7':strcat(Letras," Diescisiete ");
                              break;
                        case '8':strcat(Letras," Diesciocho ");
                              break;
                        case '9':strcat(Letras," Diescinueve ");
                              break;
                     }
                  }else{
                     strcat(Letras," Diez ");
                  }
                  l+=2;
                  p-=2;
                  break;
            case '2':
                  if(N2!='0'){
                     strcat(Letras," Veinti");
                     l++;
                     p--;
                  }else{
                     strcat(Letras," Veinte ");
                     l+=2;
                     p-=2;
                  }
                  break;
            case '3':if(N2!='0'){
                     strcat(Letras," Treinta y ");
                     l++;
                     p--;
                  }else{
                     strcat(Letras," Treinta ");
                     l+=2;
                     p-=2;
                  }
                  break;
            case '4':if(N2!='0'){
                     strcat(Letras," Cuarenta y ");
                     l++;
                     p--;
                  }else{
                     strcat(Letras," Cuarenta ");
                     l+=2;
                     p-=2;
                  }
                  break;
            case '5':if(N2!='0'){
                     strcat(Letras," Cincuenta y ");
                     l++;
                     p--;
                  }else{
                     strcat(Letras," Cincuenta ");
                     l+=2;
                     p-=2;
                  }
                  break;
            case '6':if(N2!='0'){
                     strcat(Letras," Sesenta y ");
                     l++;
                     p--;
                  }else{
                     strcat(Letras," Sesenta ");
                     l+=2;
                     p-=2;
                  }
                  break;
            case '7':if(N2!='0'){
                     strcat(Letras," Setenta y ");
                     l++;
                     p--;
                  }else{
                     strcat(Letras," Setenta ");
                     l+=2;
                     p-=2;
                  }
                  break;
            case '8':if(N2!='0'){
                     strcat(Letras," Ochenta y ");
                     l++;
                     p--;
                  }else{
                     strcat(Letras," Ochenta ");
                     l+=2;
                     p-=2;
                  }
                  break;
            case '9':if(N2!='0'){
                     strcat(Letras," Noventa y ");
                     l++;
                     p--;
                  }else{
                     strcat(Letras," Noventa ");
                     l+=2;
                     p-=2;
                  }
                  break;
         }
      }
///////////////////// numeros ordinarios.
      if(p==1){
         N1=numero[l];
         switch(N1){
            case '0':
                  break;
            case '1':
                  strcat(Letras,"Uno ");
                  break;
            case '2':strcat(Letras,"Dos ");
                  break;
            case '3':strcat(Letras,"Tres ");
                  break;
            case '4':strcat(Letras,"Cuatro ");
                  break;
            case '5':strcat(Letras,"Cinco ");
                  break;
            case '6':strcat(Letras,"Seis ");
                  break;
            case '7':strcat(Letras,"Siete ");
                  break;
            case '8':strcat(Letras,"Ocho ");
                  break;
            case '9':strcat(Letras,"Nueve ");
                  break;
         }
         l++;
      }
      // miles
      if(N1!='0'){
         if(ancho2==11 || ancho2==12 || ancho2==10)
            if (ancho2==7 && N1=='1')
               strcpy(Letras," Un Billon ");
             else
               strcat(Letras," Billones ");


         if(ancho2==8 || ancho2==9 || ancho2==7)
            if (ancho2==7 && N1=='1')
               strcpy(Letras," Un Mill¢n ");
             else
               strcat(Letras," Millones ");
         if(ancho2==5 || ancho2==6 || ancho2==4)
            if (ancho2==4 && N1=='1')
               strcpy(Letras," Mil ");
             else
               strcat(Letras," Mil ");
      }
      ancho2-=des;
   }
   return(Letras);
}

creo que que obientes Billones, o algo asi.. pero te da el nombre de una ciffra que contenga 12 digitos


Saludos
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Voy a probarlo

Muchas Gracias.
_________________
NINGUNO DE NOSOTROS ES TAN BUENO,
COMO TODOS NOSOTROS
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Espero que haya, funcionado, te habras dado cuenta.. que utliza funciones de antiguas como el strcat strcopy, etc. es que ya tiene un buen rato que la hice...
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias.

si me funcionó, aunque me toco hacerle unos cambios. de char a AnsiString
_________________
NINGUNO DE NOSOTROS ES TAN BUENO,
COMO TODOS NOSOTROS
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Pues ahora pon el Codigo Mejorado.. para todos...
en esta parte del foro
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

AnsiString NoToLet(const char *A){
const char *numero=A;
AnsiString Letras;
int p,l=0,des;
p=0;
//Letras[0]='\0';
char N1='0',N2='0',N3='0';
int ancho=strlen(numero);
int ancho2=strlen(numero);
while(l<=ancho-1){

if(ancho2-3==0 || ancho2-6==0 || ancho2-9==0){
p=3;
des=3;
}
if(ancho2-3==-1 || ancho2-6==-1 || ancho2-9==-1){
p=2;
des=2;
}
if(ancho2-3==-2 || ancho2-6==-2 || ancho2-9==-2){
p=1;
des=1;
}
///////////////////// numeros de Cienes.
if(p==3){
N1=numero[l];
N2=numero[l+1];
N3=numero[l+2];
switch(N1){
case '0':
l++;
p--;
break;
case '1':
if(N2=='0' && N3=='0'){
Letras= Letras + " Cien ";
l+=2;
p-=2;
}else{
Letras= Letras + " Ciento ";
l++;
p--;
}
break;
case '2':
Letras= Letras + " Doscientos ";
l++;
p--;
break;
case '3':
Letras= Letras + " Trescientos ";
l++;
p--;
break;
case '4':
Letras= Letras + " Cuatroscientos ";
l++;
p--;
break;
case '5':
Letras= Letras + " Quinientos ";
l++;
p--;
break;
case '6':
Letras= Letras + " Seiscientos ";
l++;
p--;
break;
case '7':
Letras= Letras + " Setecientos ";
l++;
p--;
break;
case '8':
Letras= Letras + " Ochocientos ";
l++;
p--;
break;
case '9':
Letras= Letras + " Novecientos ";
l++;
p--;
break;
}
}
///////////////////// numeros de decenas.
if(p==2){
N1=numero[l];
N2=numero[l+1];
switch(N1){
case '0':
l++;
p--;
break;
case '1':
if(N2!='0'){
switch(N2){
case '1':Letras= Letras + " Once ";
break;
case '2':Letras= Letras + " Doce ";
break;
case '3':Letras= Letras + " Trece ";
break;
case '4':Letras= Letras + " Catorce ";
break;
case '5':Letras= Letras + " Quince ";
break;
case '6':Letras= Letras + " Diesciseis ";
break;
case '7':Letras= Letras + " Diescisiete ";
break;
case '8':Letras= Letras + " Diesciocho ";
break;
case '9':Letras= Letras + " Diescinueve ";
break;
}
}else{
Letras= Letras + " Diez ";
}
l+=2;
p-=2;
break;
case '2':
if(N2!='0'){
Letras= Letras + " Veinti";
l++;
p--;
}else{
Letras= Letras + " Veinte ";
l+=2;
p-=2;
}
break;
case '3':if(N2!='0'){
Letras= Letras + " Treinta y ";
l++;
p--;
}else{
Letras= Letras + " Treinta ";
l+=2;
p-=2;
}
break;
case '4':if(N2!='0'){
Letras= Letras + " Cuarenta y ";
l++;
p--;
}else{
Letras= Letras + " Cuarenta ";
l+=2;
p-=2;
}
break;
case '5':if(N2!='0'){
Letras= Letras + " Cincuenta y ";
l++;
p--;
}else{
Letras= Letras + " Cincuenta ";
l+=2;
p-=2;
}
break;
case '6':if(N2!='0'){
Letras= Letras + " Sesenta y ";
l++;
p--;
}else{
Letras= Letras + " Sesenta ";
l+=2;
p-=2;
}
break;
case '7':if(N2!='0'){
Letras= Letras + " Setenta y ";
l++;
p--;
}else{
Letras= Letras + " Setenta ";
l+=2;
p-=2;
}
break;
case '8':if(N2!='0'){
Letras= Letras + " Ochenta y ";
l++;
p--;
}else{
Letras= Letras + " Ochenta ";
l+=2;
p-=2;
}
break;
case '9':if(N2!='0'){
Letras= Letras + " Noventa y ";
l++;
p--;
}else{
Letras= Letras + " Noventa ";
l+=2;
p-=2;
}
break;
}
}
///////////////////// numeros ordinarios.
if(p==1){
N1=numero[l];
switch(N1){
case '0':
break;
case '1':
Letras= Letras + "Uno ";
break;
case '2':Letras= Letras + "Dos ";
break;
case '3':Letras= Letras + "Tres ";
break;
case '4':Letras= Letras + "Cuatro ";
break;
case '5':Letras= Letras + "Cinco ";
break;
case '6':Letras= Letras + "Seis ";
break;
case '7':Letras= Letras + "Siete ";
break;
case '8':Letras= Letras + "Ocho ";
break;
case '9':Letras= Letras + "Nueve ";
break;
}
l++;
}
// miles
if(N1!='0'){
if(ancho2==11 || ancho2==12 || ancho2==10)
if (ancho2==7 && N1=='1')
Letras=" Un Billon ";
else
Letras= Letras + " Billones ";


if(ancho2==8 || ancho2==9 || ancho2==7)
if (ancho2==7 && N1=='1')
Letras= " Un Millon ";
else
Letras= Letras + " Millones ";
if(ancho2==5 || ancho2==6 || ancho2==4)
if (ancho2==4 && N1=='1')
Letras= " Mil ";
else
Letras= Letras + " Mil ";
}
ancho2-=des;
}
return(Letras);
}
_________________
NINGUNO DE NOSOTROS ES TAN BUENO,
COMO TODOS NOSOTROS
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Bueno.. todo se puede mejorar.. je je
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Código:


AnsiString Left(AnsiString cad, int ind)
{
  AnsiString ret;
  int i;

  if(ind>=cad.Length()) return ret;

  for(i=1;i<=ind;i++)
     { ret+=cad[i];
     }

  return ret;
}

// Función para convertir los números a su nombre en español.
// por Fabián Everardo Alvarez Navarro

// Limitaciones: Solo puede convertir numeros enteros entre
// 0 y 999999 (inclusive)

AnsiString numeroConLetra(long numero,bool capital=false)
{
  if(numero<0 || numero>999999) return AnsiString("");

  char Nombres0[30][12]={ "",
                          "un",
                          "dos",
                          "tres",
                          "cuatro",
                          "cinco",
                          "seis",
                          "siete",
                          "ocho",
                          "nueve",
                          "diez",
                          "once",
                          "doce",
                          "trece",
                          "catorce",
                          "quince",
                          "dieciseis",
                          "diecisiete",
                          "dieciocho",
                          "diecinueve",
                          "veinte",
                          "veintiun",
                          "ventidos",
                          "ventitres",
                          "venticuatro",
                          "venticinco",
                          "ventiseis",
                          "ventisiete",
                          "ventiocho",
                          "ventinueve"
                        };

  char Nombres1[10][10]={ "",
                          "diez",
                          "veinte",
                          "treinta",
                          "cuarenta",
                          "cincuenta",
                          "sesenta",
                          "setenta",
                          "ochenta",
                          "noventa"
                        };

  char Nombres2[10][14]={ "",
                          "ciento",
                          "doscientos",
                          "trescientos",
                          "cuatrocientos",
                          "quinientos",
                          "seiscientos",
                          "setecientos",
                          "ochocientos",
                          "novecientos"
                        };

  char NombresX[4][5]={ "cero",
                        "uno",
                        "cien",
                        "mil"
                      };

  AnsiString AuxNum(numero), NumConLet, AuxStr;
  int AuxLen=AuxNum.Length(), i, j, k=1;

  for(i=AuxLen;i>0;i--,k++)
     { AuxStr=AuxNum.SubString(k,1);
       j=AuxStr.ToInt();

       if(AuxLen>1 && i<AuxLen)
          NumConLet+=" ";

       switch(i)
             { case 1: if(j==0)
                         { if(i<AuxLen)//??Revisar...
                              NumConLet=Left(NumConLet,NumConLet.Length()-3); //Left(NumeroConLetra, Len(NumeroConLetra) - 3)
                           else
                              NumConLet=NombresX[0];
                         }
                       else
                         NumConLet+=Nombres0[j];
                       break;

               case 2: switch(j)
                             { case 0: case 1:
                               case 2: AuxStr=AuxNum.SubString(k,2);
                                       j=AuxStr.ToInt();
                                       k++; i--;
                                       NumConLet+=Nombres0[j];
                                       break;

                               case 3: case 4:
                               case 5: case 6:
                               case 7: case 8:
                               case 9: NumConLet+=Nombres1[j];
                                       NumConLet+=" y";
                                       break;
                             }
                       break;

               case 3: AuxStr=AuxNum.SubString(k+1,2);
                       if(j==1 && AuxStr.ToInt()==0)
                         { NumConLet+=NombresX[2];
                           i-=2; k+=2;
                         }
                       else NumConLet+=Nombres2[j];
                       break;

               case 4: if(j== 0)
                         NumConLet=Left(NumConLet,NumConLet.Length()-3);// Left(NumeroConLetra, Len(NumeroConLetra) - 3)
                       else{ NumConLet+=Nombres0[j];
                             NumConLet+=" ";
                             NumConLet+=NombresX[3];
                           }
                       break;

               case 5: switch(j)
                             { case 0: case 1:
                               case 2: AuxStr=AuxNum.SubString(k,2);
                                       j=AuxStr.ToInt();
                                       k++; i--;
                                       NumConLet+=Nombres0[j];
                                       NumConLet+=" ";
                                       NumConLet+=NombresX[3];
                                       break;

                               case 3: case 4:
                               case 5: case 6:
                               case 7: case 8:
                               case 9: NumConLet+=Nombres1[j];
                                       NumConLet+=" y";
                                       break;
                             }
                       break;

               case 6: AuxStr=AuxNum.SubString(k+1,2);
                       if(j==1 && AuxStr.ToInt()==0)
                         { NumConLet+=NombresX[2];
                           NumConLet+=" ";
                           NumConLet+=NombresX[3];
                           i-=2; k+=2;
                         }
                       else NumConLet+=Nombres2[j];
                       break;
             }
     }


  if(capital==true)
    { NumConLet[1]=toupper(NumConLet[1]);
    }

  return NumConLet;
}


Esta la hice ya hace tiempo, si alguien la mejora, por favor publiquenla.

Ademas, si lo van a utilizar, no estaria mal que me avisen. (el ego es grande)
_________________
Mientras mas errores cometa hoy, menos me equivocaré mañana.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Y si lo colgáis en Tips & Tricks, ¡miel sobre hojuelas! Smile
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Buenas,

Estoy utilizando el codigo de Favalv y me he dado cuenta de un error cuando la cifra es redonda (40000,50000,...)

Os paso el codigo corregido
Código:

AnsiString EnteroConLetra(long numero)
{
  if(numero<0>999999) return AnsiString("");

  char Nombres0[30][12]={ "",
                          "un",
                          "dos",
                          "tres",
                          "cuatro",
                          "cinco",
                          "seis",
                          "siete",
                          "ocho",
                          "nueve",
                          "diez",
                          "once",
                          "doce",
                          "trece",
                          "catorce",
                          "quince",
                          "dieciseis",
                          "diecisiete",
                          "dieciocho",
                          "diecinueve",
                          "veinte",
                          "veintiun",
                          "ventidos",
                          "ventitres",
                          "venticuatro",
                          "venticinco",
                          "ventiseis",
                          "ventisiete",
                          "ventiocho",
                          "ventinueve"
                        };

  char Nombres1[10][10]={ "",
                          "diez",
                          "veinte",
                          "treinta",
                          "cuarenta",
                          "cincuenta",
                          "sesenta",
                          "setenta",
                          "ochenta",
                          "noventa"
                        };

  char Nombres2[10][14]={ "",
                          "ciento",
                          "doscientos",
                          "trescientos",
                          "cuatrocientos",
                          "quinientos",
                          "seiscientos",
                          "setecientos",
                          "ochocientos",
                          "novecientos"
                        };

  char NombresX[4][5]={ "cero",
                        "uno",
                        "cien",
                        "mil"
                      };

  AnsiString AuxNum(numero), NumConLet, AuxStr;
  int AuxLen=AuxNum.Length(), i, j, k=1;

  for(i=AuxLen;i>0;i--,k++)
  {
     AuxStr=AuxNum.SubString(k,1);
     j=AuxStr.ToInt();

     if(AuxLen>1 && i<AuxLen)
        NumConLet+=" ";

     switch(i)
     {
        case 1:
           if(j==0)
           {
              if(i<AuxLen)
                 NumConLet=NumConLet.SubString(1,NumConLet.Length()-3); //Left(NumeroConLetra, Len(NumeroConLetra) - 3)
              else
                 NumConLet=NombresX[0];
           }
           else
              NumConLet+=Nombres0[j];
           break;

        case 2:
           switch(j)
           {
              case 0: case 1: case 2:
                 AuxStr=AuxNum.SubString(k,2);
                 j=AuxStr.ToInt();
                 k++; i--;
                 NumConLet+=Nombres0[j];
                 break;

              case 3: case 4: case 5: case 6: case 7: case 8: case 9:
                 NumConLet+=Nombres1[j];
                 NumConLet+=" y";
                 break;
           }
           break;

        case 3:
           AuxStr=AuxNum.SubString(k+1,2);
           if(j==1 && AuxStr.ToInt()==0)
           {
              NumConLet+=NombresX[2];
              i-=2; k+=2;
           }
           else
              NumConLet+=Nombres2[j];
           break;

        case 4:
           if(j== 0)
              NumConLet=NumConLet.SubString(1,NumConLet.Length()-2);
           else
           {
              if (j!=1)
              {
                 NumConLet+=Nombres0[j];
                 NumConLet+=" ";
              }
           }
           NumConLet+=NombresX[3];
           break;

        case 5:
           switch(j)
           {
              case 0: case 1: case 2:
                 AuxStr=AuxNum.SubString(k,2);
                 j=AuxStr.ToInt();
                 k++; i--;
                 NumConLet+=Nombres0[j];
                 NumConLet+=" ";
                 NumConLet+=NombresX[3];
              break;

              case 3: case 4: case 5: case 6: case 7: case 8: case 9:
                 NumConLet+=Nombres1[j];
                 NumConLet+=" y";
              break;
           }
           break;

        case 6:
           AuxStr=AuxNum.SubString(k+1,2);
           if(j==1 && AuxStr.ToInt()==0)
           {
              NumConLet+=NombresX[2];
              NumConLet+=" ";
              NumConLet+=NombresX[3];
              i-=2; k+=2;
           }
           else
              NumConLet+=Nombres2[j];
           break;
     }
  }

  return NumConLet;
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

existen varias versiones, checa cual te sirve aun que la que he puesto funciona sin ningun problema
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hola.. Una pregunta que puede estar mal con esta parte del codigo

AnsiString Notolet(const char *A){

ya que marca error y dice que la declaracion es incorrecta
_________________
The best of the lost arts
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.