Ayuda con "read" y "seek" en perl

Iniciado por jankoitt, 4 Abril 2011, 23:06 PM

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

jankoitt

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!

leogtz

Ya probaste con:
seek(l,3955,0);

Según he leído, eso sitúa el puntero del archivo en el byte 3955.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

jankoitt

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!