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
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!
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
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
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
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 ?¿
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!
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
Claro. Ambos contadores van de 1 en 1.
muchisisisisisimas gracias no me canso de decirlo que gran foro xD
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
El espacio " ", no tiene el valor ANSI 00h, sino 20h (32 Decimal).
Fijate: http://es.wikipedia.org/wiki/ASCII (http://es.wikipedia.org/wiki/ASCII)
Saludos!
Cita de: MCKSys Argentina en 15 Enero 2013, 19:24 PM
El espacio " ", no tiene el valor ANSI 00h, sino 20h (32 Decimal).
Fijate: http://es.wikipedia.org/wiki/ASCII (http://es.wikipedia.org/wiki/ASCII)
Saludos!
alo que me refiero es al caracter Nulo que en hex se pone 00 no ay alguna forma de ponerlo con el vb6 ? en el codigo
(http://i50.tinypic.com/jsekxi.jpg)
cuando dices nulo diras chr(0)?
Cita de: Danyfirex en 15 Enero 2013, 19:50 PM
cuando dices nulo diras chr(0)?
si ,pero mi duda es como cambiar espacios vacios del texbox a chr(0)
Comparandolos.
En el bucle del ejemplo:
dim i as long
dim j as long
for j = 1 to len(text1.text)
i = j + 1846823
if asc(mid(text1.text, j, 1)) = 32 then
bytearray(i) = 0
else
bytearray(i) = asc(mid(text1.text, j, 1))
end if
next j
Lo escribes con chr(0) mira.
Open "C:\Users\CENTRAL\Desktop\XD.txt" For Binary As #1
Dim bytes() As Byte
bytes() = StrConv("hola" & Chr(0), vbFromUnicode)
Put #1, , bytes()
Close #1
Te recomiendo leer sobre Ansi y Unicode.
saludos
Cita de: MCKSys Argentina en 15 Enero 2013, 20:00 PM
Comparandolos.
En el bucle del ejemplo:
dim i as long
dim j as long
for j = 1 to len(text1.text)
i = j + 1846823
if asc(mid(text1.text, j, 1)) = 32 then
bytearray(i) = 0
else
bytearray(i) = asc(mid(text1.text, j, 1))
end if
next j
no ay alguna forma de poner en el texbox los Chr(0) que yo lo escriba pss
por ejemplo
nombre y quedan 2 espacios vacios como pongo un Chr(0) en los 2 espacios vacios :S espero entiendas
Lee la parte de caracteres imprimibles: http://es.wikipedia.org/wiki/ASCII (http://es.wikipedia.org/wiki/ASCII)
Si no lees, no puedes aprender.
Saludos!
muchas gracias MCKSys Argentina no avia visto tu codigo jajaja :laugh: :xD