pequeñisima duda hex

Iniciado por asdexiva, 15 Enero 2013, 18:02 PM

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

asdexiva

Dim file As String, Datos As String, bytearray() As Byte

file = "C:\Archivos de programa\aplicacion\xd.exe"
Open file For Binary As #1
Datos = Space(LOF(1))
Get #1, , Datos
Close #1

bytearray() = StrConv(Datos, vbFromUnicode)
'cmain frame
bytearray(1846824) = Asc("T")
bytearray(1846825) = Asc("i")
bytearray(1846826) = Asc("b")
bytearray(1846827) = Asc("i")
bytearray(1846828) = Asc("a")
bytearray(1846829) = Asc("C")
bytearray(1846830) = Asc("l")
bytearray(1846831) = Asc("i")
bytearray(1846832) = Asc("e")
bytearray(1846833) = Asc("n")
bytearray(1846834) = Asc("t")

Open file For Binary As #1
Put #1, 1, bytearray()
Close #1
End Sub


lo que quiero es no hacer tantas lineas en los bytearray quiero hacer un texbox  que acomode todo quiero todos estos bytes array en una sola linea  espero me entienda xD
1846824,1846825,1846826,1846827,asta 1846834 con un texbox y que en el texbox no se puedan escribir mas de 11 letras
por favor ayuda :S

MCKSys Argentina

Si pones los chars en un textbox y usas mid para ir tomando 1x1 y asignandole los valores al array (por supuesto, vas a necesitar un indice para ir recorriendolo) podras hacerlo en un par de lineas.

Es claro que si lo colocas en un txtbox, lo colocas en un string...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


asdexiva

podria ser asi ?
bytearray() = StrConv(Datos, vbFromUnicode)
'cmain frame
bytearray(1846824, 1846825, 1846826, 1846827, 1846828, 1846829, 1846830, 1846831, 1846832, 1846833, 1846834) = Asc(Text1.Text)


biterray esta declarado como string pero me sale una ventana diciendo error 13 no coinciden los datos

MCKSys Argentina

j va desde 1 hasta el largo del string
i es el indice del array y va desde 1846824 (el primero) hasta 1846823 + el largo del texto

Código (vb) [Seleccionar]

dim i as long
dim j as long

for j = 1 to len(text1.text)
  i = j + 1846823
  bytearray(i) = asc(mid(text1.text, j, 1))
next j
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


asdexiva

#4
muchisimas gracias funciona

me podrias explicar mas o menos el codigo  pero en forma

if text1.text=xd then
si text1 =xd entonces <-- asi please xd

quiero comprender bien el codigo si no es mucha molestia xD
no logro enteder esto

i = j + 1846823
  bytearray(i) = asc(mid(text1.text, j, 1))

como isestes desde 1846823 1846834 ?¿

MCKSys Argentina

Veamos:

Tienes un string que deseas insertar en un array. Para esto, necesitas recorrer los caracteres del string 1x1 e insertarlos en el array.

En el ejemplo, j va desde 1 (el primer char del string) hasta el largo (len) del mismo.
Ahora, en TU ejemplo pusiste que deseabas comenzar a insertar elementos desde la posicion 1846824. Si tengo un contador (j) que va desde 1 hasta n, entonces si quiero contar desde 1846824 hasta 1846824 + n, lo que hago es: 1846823 + j (j se incrementa en 1 en cada vuelta del for).

Se entiende?

Una cosa que deberas tener en cuenta es el tamaño del array. Verifica que tengas espacio suficiente...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


asdexiva

si muchas gracias entonces j viene siendo =al primer numero de 1846824
por ejemplo si yo tengo 1846120 y quiero que de ay empise no tengo que poner este numero si no  1846119 verdad xd por que vi que salta un byte en hex si no pongo un numero antes

MCKSys Argentina

Claro. Ambos contadores van de 1 en 1.
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


asdexiva

muchisisisisisimas gracias  no me canso de decirlo que gran foro xD

asdexiva

Cita de: MCKSys Argentina en 15 Enero 2013, 19:04 PM
Claro. Ambos contadores van de 1 en 1.

oye una dudilla xD
ay alguna forma de que si quedan espacios vacios en el texbox se cambien por bytes ? son lo que se ponen con 00