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!
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)
Cita de: s E t H en 1 Septiembre 2008, 18:23 PM
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
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?
Cita de: s E t H en 2 Septiembre 2008, 19:08 PM
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 =)
ese msn lo uso una vez x año :rolleyes:
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
Cita de: s E t H en 5 Septiembre 2008, 23:03 PM
ese msn lo uso una vez x año :rolleyes:
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! :D