Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: jankoitt en 4 Abril 2011, 23:06 pm



Título: Ayuda con "read" y "seek" en perl
Publicado por: jankoitt en 4 Abril 2011, 23:06 pm
Saludos, estoy haciendo una aplicacion en la cual estoy manejando archivos, necesito sacar unos datos desde una posicion en especifica hacia atras. Para ello estoy usando seek y read. Segun estuve leyendo:

seek me coloca el puntero en una posicion en especifico y me permite moverme desde el inicio, desde una posicion o desde el final con los parametros (0,1,2) para leer con read. Pero a pesar de esto, cuando uso el "read" me lee desde el inicio :S


Lo que tengo es lo siguiente

seek(l,-3955,1); #me posiciono en la 3955 para leer hacia atras
read(l,$var,50); #almaceno en $var 50 caracteres desde la posicion 3905-3955

Pero aun asi cuando hago print $var; me presenta los primeros 50 caracteres desde la posicion 0 hasta la 49 del archivo.

Alguna idea?
Gracias!


Título: Re: Ayuda con "read" y "seek" en perl
Publicado por: leogtz en 4 Abril 2011, 23:19 pm
Ya probaste con:
seek(l,3955,0);

Según he leído, eso sitúa el puntero del archivo en el byte 3955.


Título: Re: Ayuda con "read" y "seek" en perl
Publicado por: jankoitt en 7 Abril 2011, 23:04 pm
me funciona ahora si quito el "menos" en el 3955, lo que hice fue restar la cantidad de caracteres que deseaba leer a la posicion y asi me resulto (medio arcaico) pero para el fin resuelve.
Gracias!