Leer parte de un archivo (Offset)

Iniciado por Freeze., 28 Diciembre 2007, 21:20 PM

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

Freeze.

Hola, supongamos que yo tengo 1 archivo y adentro tiene escrito lo siguiente:

Hola.........as.......
...a.s......127......y
..n......a.......y.....
n.......................y

(viendolo desde un Editor Hexadecimal)

¿Como leo yo ese numero 127?

Estuve intentando con EOF, LOF, LOC, SEEK pero nada, no pude. Ya de tranto estudiar otros lengujes se me ha olvidado el vb un poco. :D

Ferсhu

ese "127" tiene una posicion, te moves hasta esa posicion en el archivo (SEEK) y luego lees la cantidad de valores q keres.

osea...es algo logico no??

si sabes manejar archivos (y creo q sabes) no creo q te sea mui dificil.

Saludos!!

Freeze.

Código (vb) [Seleccionar]
Private Sub Form_Load()
Dim Server As String
Open "C:\server.exe" For Binary Access Read As #1
    Server = Space(Seek(1) + 10)
    Get #1, , Server
Close #1
Print Server
End Sub


Eso es lo que tengo..! Pero no entiendo como hacer para llegar justo al 1 de (127)...

vivachapas

Open "C:\server.exe" for binary as #1
Server = Input(LOF(1),1)
Close #1
Resultado = Mid(Server,40,3)


donde puse 40,3 no va 40... tire un numero... pero iria la ubicacino del 1 del 127... 3 es xq 127 tiene 3 caracteres...

bueno la verdad no se si te sirve... xD

pero suerte y SALUDOS

Ferсhu

con seek vas hasta la posicion, la tenes q saber, y guardas los datos.

capas te ayude http://msdn2.microsoft.com/es-es/library/7af2feyt(VS.80).aspx

Freeze.

Cita de: vivachapas en 28 Diciembre 2007, 22:03 PM
Open "C:\server.exe" for binary as #1
Server = Input(LOF(1),1)
Close #1
Resultado = Mid(Server,40,3)


donde puse 40,3 no va 40... tire un numero... pero iria la ubicacino del 1 del 127... 3 es xq 127 tiene 3 caracteres...

bueno la verdad no se si te sirve... xD

pero suerte y SALUDOS

Exacto, gracias por recordarme la funcion y aparte codearme un poco :xD

SKL (orignal)

a ver, si podes poner un pedaso del texto tal y como esta... o el mismo archivo para descargarlo seria mas facil...

otra cosa, el numero ese se mueve de posicion?, es siempre el mismo numero?, hasta que sifra puede llegar...


asi es mucho mas facil... pone el texto tal cual esta en tu archivo...

Freeze.


foobar

Cita de: vivachapas en 28 Diciembre 2007, 22:03 PM
Open "C:\server.exe" for binary as #1
Server = Input(LOF(1),1)
Close #1
Resultado = Mid(Server,40,3)


donde puse 40,3 no va 40... tire un numero... pero iria la ubicacino del 1 del 127... 3 es xq 127 tiene 3 caracteres...

bueno la verdad no se si te sirve... xD

pero suerte y SALUDOS

El acceso binario no es para eso... la idea es poder leer DATOS BINARIOS.


Dim lOffset    As Long
Dim valorByte  As Byte
Dim valorLng   As Long
Dim sStaticStr As String * 6
Dim btData(5)  As Byte


lOffset = 17  ' Offset donde se quiere leer, relativo al principio del archivo.

Open "C:\server.exe" for Binary as #1

Get #1, lOffset, valorByte  ' Lee 1 byte en esa posición.
Get #1, lOffset, valorLong  ' Lee 4 bytes en esa posición.
Get #1, lOffset, sStaticStr ' Lee 6 bytes y los mete en un String.
Get #1, lOffset, btData     ' Lee 6 bytes en un array de bytes.

Debug.Print StrConv(btData, vbUnicode)  ' Convierte el array de bytes en String.

Close #1


Bytez.