• Publicidad

Obtener handle de archivo

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Obtener handle de archivo

Notapor strup » 2012-11-03 10:40 @486

Saludos foro, vengo a preguntar cómo se puede coger el handle de un archivo, pues ya lo hice con el módulo FileHandle, pero me da error al usar el handle con GetFileSize :?

¿Cómo puedo solucionar esto?

Y bueno, tengo otra duda sobre un módulo. Según por lo que entendí hay un módulo llamado PAR que si no entendí mal es para pasar un .pl a .exe. Espero me resuelvan esa duda :oops: ya que yo convierto a .exe con pdk, y quiero aprender a ser posible con algún módulo.

Un saludo a todos :wink:
strup
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2012-10-16 21:37 @942

Publicidad

Re: Obtener handle de archivo

Notapor explorer » 2012-11-03 12:05 @545

Cuando abres un archivo con open(), ya estás declarando qué handle (gestor) de archivos vas a usar:

open my $fh, '<', $archivo;

En esta línea, $fh será nuestro gestor de archivos.

¿Te refieres a eso?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Obtener handle de archivo

Notapor strup » 2012-11-03 12:26 @560

Hola explorer, gracias por responder, no sé si es a eso exactamente a lo que me refiero, mira yo cojo el handle así
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $fh = FileHandle->new ("C:\\filenew.txt");
  2. print $fh;
  3.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

y me devuelve
0x187b264 que se supone que ese es el handle pero no puedo usarlo con getfilesize. Tampoco entendí del todo lo que me dijiste, me recordó a la manera normal que Perl tiene de leer archivos en consola:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open(perl"<perlero.txt");
  2. @Perl=<perl>;
  3. print @Perl;
  4.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y por eso me dejó un poco confuso y no sé claro si es exactamente a lo que me refiero :roll: , un saludo :wink:
strup
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2012-10-16 21:37 @942

Re: Obtener handle de archivo

Notapor explorer » 2012-11-03 13:09 @590

strup escribiste:Hola explorer, gracias por responder, no sé si es a eso exactamente a lo que me refiero, mira yo cojo el handle así
¿Y qué módulo has importado en el programa (con 'use') para poder usar FileHandle()?

strup escribiste:Tampoco entendí del todo lo que me dijiste, me recordó a la manera normal que Perl tiene de leer archivos en consola:
En realidad, con open() se puede leer/escribir/agregar en archivos, consolas, tuberías UNIX, procesos o sockects TCP (y alguna cosa más que no recuerdo).

En estos foros tienes un par de cientos de ejemplos con open().

Otra pregunta. ¿Qué es lo que realmente quieres hacer?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Obtener handle de archivo

Notapor strup » 2012-11-03 13:33 @606

Importé el FileHandle como bien sale en el código que mostré.

Lo que quiero hacer es mostrar el tamaño del archivo en bytes que es lo que hace la API GetFileSize pero he de almacenar el handle del objeto o programa en una variable, por lo tanto son dos pointer, como GetBinaryTipe, solo que con esta última sí que la conseguí sin problemas.

Aquí tienes el código por si necesitas echarle un vistazo.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Win32::API;
  2.  
  3. $Get= new Win32::API('Kernel32','GetFileSize','PP','N');
  4. $zz="";
  5. $x=$Get->Call('C:\bo.exe',$zz); # en C:\bo.exe va el handle en lugar de la ruta del programa,(al menos eso creo xD)
  6. print $x;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Un saludo
strup
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2012-10-16 21:37 @942

Re: Obtener handle de archivo

Notapor explorer » 2012-11-03 16:57 @748

No conozco nada de la API de Windows (lo dejé en 1998), pero en Perl, cuando quiero saber el tamaño de un archivo, uso el operador '-s':
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $archivo = 'C:/filenew.txt';
my $tamano  = -s $archivo;
print "Tamaño de [$archivo]: $tamano";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Más información, en tu ordenador, en perldoc -f -X
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Obtener handle de archivo

Notapor strup » 2012-11-03 18:00 @792

:shock: ¡Qué máquina, tío! No sabía que se podía hacer de esa manera tan simple, de hecho es que todavía no he llegado al tema de esas keywords pero cuando vi tu respuesta miré en perldoc y ya me hice una idea de para qué son esas keywords que empiezan con '-'.

Gracias, explorer, un saludo :)
strup
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2012-10-16 21:37 @942


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 18 invitados

cron