• Viernes 8 de Noviembre de 2024, 20:55

Autor Tema:  Decimal A Hexadecimal De Celulares  (Leído 1816 veces)

emizael

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Decimal A Hexadecimal De Celulares
« en: Martes 9 de Marzo de 2004, 23:11 »
0
saludos amigos tengo que hacer una aplicacion la cual convierta codigos decimales en hexadecimales pero este no es el problema sino el siguiente los codigos hexadecimales que quiero son los que utilizan los telefonos celualares por ejemplo si tengo un decimal de un telefono que es 05500022268 el hexadecimal seria el siguiente 370056fc  que es la sumatoria del resultado 055 (37)+ 00022268(0056fc) hasta aqui vamos bien lo he hecho y funciona lo que pasa es que el resultado que emite es el siguiente 3756fc ya que no coloca los ceros del segundo resultado como puedo hacer para que no los elimine hay alguna manera de formatear el codigo   ojo...... si en el segundo decimal se reemplazan los ceros por numeros que normalmente ahi telefonos asi da perfecto el problema es con los ceros.... gracias y por favor agradesco ayuda o al menos una sugerencia'por cierto el primer campo tiene que tener obligatoriamente 3 digitos y el segundo 8 y el resultado hexadecimal tiene que tener obligatoriamente 8 digitos entre numeros y letras claro despues de la suma del campo 1 y el 2 y por supuesto despues de que no elimine los ceros chao


aqui esta el codigo que funciona perfecto hasta que colocas dos ceros al comienzo del campo 2

Private Sub Command1_Click()
'Form1.Text1.Text =  '1er valor de solo tres digitos
'Form1.Text2.Text =  '2do valor de ocho digitos
Form1.Text3.Text = Hex(Form1.Text1.Text) + Hex(Form1.Text2.Text)
Exit Sub
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub

el codigo esta hecha a vuelo de pajaro pero funciona bien

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Decimal A Hexadecimal De Celulares
« Respuesta #1 en: Miércoles 10 de Marzo de 2004, 10:34 »
0
Hola emizael.

La solución es muy sencilla: concatenar los ceros que hagan falta por la izquierda del segundo hexadecimal.

Código: Text
  1.  
  2. Dim str1 as string, str2 as string
  3. str1 = Hex(Form1.Text1.Text)
  4. str2 = Hex(Form1.Text2.Text)
  5. str2 = string(8 - Len(str1)-len(str2),"0") & str2
  6. Form1.Text3.Text = str1 & str2
  7.  
  8.  

Suerte.

emizael

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Decimal A Hexadecimal De Celulares
« Respuesta #2 en: Miércoles 10 de Marzo de 2004, 14:58 »
0
gracias es bueno saber que todavian quedan personas que quieren compartir sus conocimientos para ayudar a otros saludos :D

por cierto de verdad que era sencillo :P

comsuven

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: Decimal A Hexadecimal De Celulares
« Respuesta #3 en: Viernes 12 de Marzo de 2004, 16:22 »
0
para brroz.

el codigo funciona pero tengo un problema cuando comienzo el primer o segundo decimal con numeros muy grandes ejemplo primer decimal 159 segindo decimal 78978978  me sale el suguiente error  5 en tiempo de ejecucion llamada o argumentos no valido que podria estar pasando  saludos y gracias :blink:

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Decimal A Hexadecimal De Celulares
« Respuesta #4 en: Lunes 15 de Marzo de 2004, 18:07 »
0
Hola comsuven.

Claramente el error se produce en esta línea:
Código: Text
  1.  
  2. str2 = string(8 - Len(str1)-len(str2),"0") & str2
  3.  
  4.  

Si la longitud de str1 sumada a la longitud de str2 es mayor que 8, caso en el que 'String' recibiría un parámetro con valor negativo que no admite. Fíjate que en el planteamiento del problema se decía que el número resultante nunca sería de más de 8 dígitos, de ahí el relleno.

Chao.

emizael

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Decimal A Hexadecimal De Celulares
« Respuesta #5 en: Lunes 15 de Marzo de 2004, 19:48 »
0
gracias brroz ya pude solucionar todo y terminar la aplicacion gracias de verdad