Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Nanoc en 2 Junio 2010, 23:33 pm



Título: Interpretar archivo como numero entero
Publicado por: Nanoc en 2 Junio 2010, 23:33 pm
Buenas, intento abrir un archivo del tipo que sea, leerlo en modo binario y luego quiero convertirlo a un tipo numerico, el problema me viene en el ultimo paso.

El archivo lo tengo guardado en un array byte, y quisiera pasarlo a un tipo long o similar, alguien sabria decirme una buena forma de hacerlo?

y otra, es posible que el array byte sea muy grande, puesto que creo que no hay ningun tipo numerico mas grande que long, que deberia hacer? memoria dinamica?

Espero respuestas, gracias.


Título: Re: Interpretar archivo como numero entero
Publicado por: BlackZeroX en 2 Junio 2010, 23:38 pm
1byte = 1 Byte
1Long = 4 Bytes

Para pasarlo a long toma 4 bytes y con copymemory pega esos 4 bytes en una variable tipo long!ˇ, de igual forma con alguna otra variable de mayor amplitud como double!ˇ.

P.D.: no se si a esto te referias xP

Dulce Infierno Lunar!ˇ.


Título: Re: Interpretar archivo como numero entero
Publicado por: Nanoc en 3 Junio 2010, 00:01 am
mmm... es algo asi, pero yo quiero transformar el array en un unico numero, por muy largo que sea


Título: Re: Interpretar archivo como numero entero
Publicado por: BlackZeroX en 3 Junio 2010, 00:02 am
El archivo lo tengo guardado en un array byte, y quisiera pasarlo a un tipo long o similar, alguien sabria decirme una buena forma de hacerlo?

y otra, es posible que el array byte sea muy grande, puesto que creo que no hay ningun tipo numerico mas grande que long, que deberia hacer? memoria dinamica?

solo para eso

Da igual que lo pases a un tipo long o double variant string etc va a ocupar LO MISMO en memoria que son equivalencias por asi decirlo!ˇ.

Código:

Function LenB(Expression)
    Miembro de VBA.Strings
    Devuelve los bytes necesarios para almacenar una variable

Código
  1.  
  2. Dim a As Byte
  3. Dim b As Long
  4. Dim c As Double
  5. Dim d As Variant
  6. Dim e As Single
  7. Dim f As String * 1
  8. Dim g As Integer
  9.  
  10. Debug.Print "Byte"; LenB(a)
  11. Debug.Print "Long"; LenB(b)
  12. Debug.Print "Double"; LenB(c)
  13. Debug.Print "Variant"; LenB(d)
  14. Debug.Print "Single"; LenB(e)
  15. Debug.Print "String"; LenB(f)
  16. Debug.Print "Integer"; LenB(g)
  17.  
  18.  

Dulce Infierno Lunar!ˇ.


Título: Re: Interpretar archivo como numero entero
Publicado por: Nanoc en 3 Junio 2010, 02:09 am
Vale, me queda claro esto ultimo, pero estoi usando un byte array, y quiero convertirlo ENTERO a un UNICO numero, es decir

si en el byte array hay 200 subindices cada uno con un byte, yo quiero juntarlo todo y convertirlo a un numero decimal, incluso me podria servir en sistema binario, solo quiero realizar un par de operaciones matematicas simples con el numero.

haber si alguien tiene una idea

edit:

he probado a almacenar directamente el binario en un double y funciona, pero no me cabe. Hay alguna forma de dividir un array byte entre otro?