Interpretar archivo como numero entero

Iniciado por Nanoc, 2 Junio 2010, 23:33 PM

0 Miembros y 1 Visitante están viendo este tema.

Nanoc

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.

BlackZeroX

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!¡.
The Dark Shadow is my passion.

Nanoc

mmm... es algo asi, pero yo quiero transformar el array en un unico numero, por muy largo que sea

BlackZeroX

Cita de: Nanoc en  2 Junio 2010, 23:33 PM
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!¡.



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


Código (vb) [Seleccionar]


Dim a As Byte
Dim b As Long
Dim c As Double
Dim d As Variant
Dim e As Single
Dim f As String * 1
Dim g As Integer

Debug.Print "Byte"; LenB(a)
Debug.Print "Long"; LenB(b)
Debug.Print "Double"; LenB(c)
Debug.Print "Variant"; LenB(d)
Debug.Print "Single"; LenB(e)
Debug.Print "String"; LenB(f)
Debug.Print "Integer"; LenB(g)



Dulce Infierno Lunar!¡.
The Dark Shadow is my passion.

Nanoc

#4
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?