Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Freeze. en 28 Diciembre 2007, 21:20 pm



Título: Leer parte de un archivo (Offset)
Publicado por: Freeze. en 28 Diciembre 2007, 21:20 pm
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


Título: Re: Leer parte de un archivo (Offset)
Publicado por: Ferсhu en 28 Diciembre 2007, 21:44 pm
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!!


Título: Re: Leer parte de un archivo (Offset)
Publicado por: Freeze. en 28 Diciembre 2007, 21:51 pm
Código
  1. Private Sub Form_Load()
  2. Dim Server As String
  3. Open "C:\server.exe" For Binary Access Read As #1
  4.    Server = Space(Seek(1) + 10)
  5.    Get #1, , Server
  6. Close #1
  7. Print Server
  8. End Sub

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


Título: Re: Leer parte de un archivo (Offset)
Publicado por: vivachapas en 28 Diciembre 2007, 22:03 pm
Código:
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


Título: Re: Leer parte de un archivo (Offset)
Publicado por: Ferсhu en 28 Diciembre 2007, 22:07 pm
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


Título: Re: Leer parte de un archivo (Offset)
Publicado por: Freeze. en 28 Diciembre 2007, 22:15 pm
Código:
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


Título: Re: Leer parte de un archivo (Offset)
Publicado por: SKL (orignal) en 29 Diciembre 2007, 02:41 am
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...


Título: Re: Leer parte de un archivo (Offset)
Publicado por: Freeze. en 29 Diciembre 2007, 05:22 am
Solucionado


Título: Re: Leer parte de un archivo (Offset)
Publicado por: foobar en 31 Diciembre 2007, 15:32 pm
Código:
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.

Código:
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.