Autor
|
Tema: Conflicto con asignaciones de variables (Leído 2,049 veces)
|
demoniox12
Desconectado
Mensajes: 204
El conocimiento es poder
|
Hola! tengo un problemita.. yo abro un archivo binario y le quiero hacer un split.. pero la variable del split no puede ser byte.. o sea miren.. Dim nFile As Integer Dim Contenido() As Byte nFile = FreeFile Open ruta For Binary As #nFile ReDim Contenido(LOF(nFile) - 1) Get #nFile, , Contenido Close #nFile ContDividido = Split(Contenido, "|Separacion|") Contenido = ContDividido(1)
y ahi Contenido ya se decajeta.. yo quiero que siga en modo byte y quiero obtener lo que le sigue a |Separacion|... Desde ya muchas gracias =) Salu2!
|
|
« Última modificación: 1 Septiembre 2008, 17:46 pm por demoniox12 »
|
En línea
|
By Demoniox
|
|
|
s E t H
Desconectado
Mensajes: 152
Ha tenido un sueño donde todos los pollos eran libres de cruzar una carretera sin tener que justificar sus actos.
|
encontre la solucion en tratarlo como string y pasarlo a byte despues de la division.. hice este code para probarlo (uso demasiadas variables pero si queres ahorrar memoria fijate vos..) Private Sub Form_Load() Dim nFile As Integer Dim Contenido As String Dim ContenidoMedio() As String Dim ContenidoFinal() As Byte Contenido = "asdasdsadSEPARADOR123456" ContenidoMedio = Split(Contenido, "SEPARADOR") ReDim ContenidoFinal(Len(ContenidoMedio(1))) ContenidoFinal() = ContenidoMedio(1) MsgBox ContenidoFinal End Sub
y adaptado a tu code seria algo asi.. Dim nFile As Integer Dim Contenido As String Dim ContenidoMedio() As String Dim ContenidoFinal() As Byte nFile = FreeFile Open ruta For Binary As #nFile Contenido = Input(LOF(Free), #Free) Close #nFile ContenidoMedio = Split(Contenido, "SEPARADOR") ReDim ContenidoFinal(Len(ContenidoMedio(1))) ContenidoFinal() = ContenidoMedio(1)
|
|
|
En línea
|
|
|
|
demoniox12
Desconectado
Mensajes: 204
El conocimiento es poder
|
encontre la solucion en tratarlo como string y pasarlo a byte despues de la division.. hice este code para probarlo (uso demasiadas variables pero si queres ahorrar memoria fijate vos..) Private Sub Form_Load() Dim nFile As Integer Dim Contenido As String Dim ContenidoMedio() As String Dim ContenidoFinal() As Byte Contenido = "asdasdsadSEPARADOR123456" ContenidoMedio = Split(Contenido, "SEPARADOR") ReDim ContenidoFinal(Len(ContenidoMedio(1))) ContenidoFinal() = ContenidoMedio(1) MsgBox ContenidoFinal End Sub
y adaptado a tu code seria algo asi.. Dim nFile As Integer Dim Contenido As String Dim ContenidoMedio() As String Dim ContenidoFinal() As Byte nFile = FreeFile Open ruta For Binary As #nFile Contenido = Input(LOF(Free), #Free) Close #nFile ContenidoMedio = Split(Contenido, "SEPARADOR") ReDim ContenidoFinal(Len(ContenidoMedio(1))) ContenidoFinal() = ContenidoMedio(1)
estuve probando.. pero no me funciono :S deberia haber alguna forma de tratar siempre en Byte o alguna otra solucion :S gracias igual man.. Salu2
|
|
|
En línea
|
By Demoniox
|
|
|
s E t H
Desconectado
Mensajes: 152
Ha tenido un sueño donde todos los pollos eran libres de cruzar una carretera sin tener que justificar sus actos.
|
ni siquiera te funciono el de arriba? o esta mal adaptado?
si el primero funciona, entonces adaptalo a tu proyecto.. si no, decime que error te da e intenta debuguear para buscar el error
supongo que se puede hacer tratandolo siempre como byte, pero por que si asi es mas simple?
|
|
|
En línea
|
|
|
|
demoniox12
Desconectado
Mensajes: 204
El conocimiento es poder
|
ni siquiera te funciono el de arriba? o esta mal adaptado?
si el primero funciona, entonces adaptalo a tu proyecto.. si no, decime que error te da e intenta debuguear para buscar el error
supongo que se puede hacer tratandolo siempre como byte, pero por que si asi es mas simple?
si intente con la solucion que me diste y la modifique varias veces para ver si la hacia andar pero nada.. se descajeta al pasar de string a byte mira intenta con cualquier archivo .exe ponle una marca en cualquier lugar e intenta guardar la 2da parte pero siempre en byte, xq lo que yo necesito es pasarle esos bytes a una funcion, pero igualmente guardalos en otro archivo y miralo con el word pad o con lo que sea y veras que cambia el contenido digamos que se modifica y deja de ser lo que debe ser... salu2! PD: te agregue al msn.. cualkier cosa mi mail esta en el perfil =)
|
|
|
En línea
|
By Demoniox
|
|
|
s E t H
Desconectado
Mensajes: 152
Ha tenido un sueño donde todos los pollos eran libres de cruzar una carretera sin tener que justificar sus actos.
|
ese msn lo uso una vez x año ahora no tengo el vb para probar pero creo que la prueba que hice funcionaba.. si el problema esta en pasar de string a byte se podria hacer byte por byte.. Dim nFile As Integer Dim Contenido As String Dim ContenidoMedio() As String Dim ContenidoFinal() As Byte nFile = FreeFile Open ruta For Binary As #nFile Contenido = Input(LOF(Free), #Free) Close #nFile ContenidoMedio = Split(Contenido, "SEPARADOR") contenido= ContenidoMedio(1) ReDim ContenidoFinal(Len(contenido)) dim i for i=1 to len(contenido) contenidofinal(i-1)=asc(mid(i,contenido,1)) 'aca no se si es asi o: mid(contenido,i,1) next i
repito: como no tengo el vb aca no se si funciona bien, pero deberia
|
|
|
En línea
|
|
|
|
demoniox12
Desconectado
Mensajes: 204
El conocimiento es poder
|
ese msn lo uso una vez x año ahora no tengo el vb para probar pero creo que la prueba que hice funcionaba.. si el problema esta en pasar de string a byte se podria hacer byte por byte.. Dim nFile As Integer Dim Contenido As String Dim ContenidoMedio() As String Dim ContenidoFinal() As Byte nFile = FreeFile Open ruta For Binary As #nFile Contenido = Input(LOF(Free), #Free) Close #nFile ContenidoMedio = Split(Contenido, "SEPARADOR") contenido= ContenidoMedio(1) ReDim ContenidoFinal(Len(contenido)) dim i for i=1 to len(contenido) contenidofinal(i-1)=asc(mid(i,contenido,1)) 'aca no se si es asi o: mid(contenido,i,1) next i
repito: como no tengo el vb aca no se si funciona bien, pero deberia muchisimas gracias! este ultimo si me funciono!
|
|
|
En línea
|
By Demoniox
|
|
|
|
|