• Publicidad

Problemas con ParseFile

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

Problemas con ParseFile

Notapor astrid5 » 2010-08-03 14:45 @656

Hola a todos. Les escribo porque tengo problemas con un código, así que solicito amablemente su ayuda.

En primera no sé para qué sirve la instrucción parseFile y creo que es la que genera el error. De este código, sólo les mando la subrutina.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
readResponse
{
 my($sac) = @_;

 my($station,$network,$component,$channel) = $sac->Fetch(qw(kstnm knetwk kcmpnm khole));
 my $respName = "";
 my $resp = Seed::Response->new();
 $resp->parseFile($respName);

 return $resp;
}
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


La terminal me dice que no puede abrir el archivo RESP.$network.$station.$channel.$component

Espero puedan ayudarme. Gracias
astrid5
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2010-06-16 14:59 @666

Publicidad

Re: Problemas con ParseFile

Notapor explorer » 2010-08-03 15:58 @707

Nosotros tampoco sabemos qué es lo que hace parseFile. Parece que es una función que está definida en otra parte del código o en algún módulo externo. En CPAN hay unas cuantas distribuciones que traen esa función.

Lo que me extraña es lo que veo en el código, que en una línea pones

my $respName = "";

y luego haces la llamada

$resp->parseFile($respName);

y, como sospecho, que la llamada a Seed::Response->new() tampoco ha actualizado la variable, me temo que estás llamando a parseFile con una variable que no contiene nada.

Sería recomendable que pusieras el texto completo del error que sale en pantalla. Seguramente vendrá indicada la fila en la que Perl cree que se ha producido el error.

Me extraña que te diga que no puede abrir ese fichero, con ese mensaje de error. Yo, cuando veo

RESP.$network.$station.$channel.$component

me suena a que esa cadena no ha sido interpretada, ya que yo esperaría a que el programa o Perl me mostrase el nombre real del fichero que no puede abrir.

Hay algo más en el código, que está mal.
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: Problemas con ParseFile

Notapor astrid5 » 2010-08-05 14:41 @653

Disculpa, lo que pasa es que modifiqué el código. Originalmente es así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub
  2. readResponse
  3. {
  4.  my($sac) = @_;
  5.  
  6.  my($station,$network,$component,$channel) = $sac->Fetch(qw(kstnm knetwk kcmpnm khole));
  7.  my $respName = "RESP.$network.$station.$channel.$component";
  8.  my $resp = Seed::Response->new();
  9.  $resp->parseFile($respName);
  10.  
  11.  return $resp;
  12. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y el error es este:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Could not open RESP.CH.FUORN..BHZ at sacprueba.pl line 69
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Esta es sólo la subrutina, la línea 69 es esta: $resp->parseFile($respName);

Creo que el problema está en el módulo Seed::Response.
astrid5
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2010-06-16 14:59 @666

Re: Problemas con ParseFile

Notapor explorer » 2010-08-05 14:45 @656

El mensaje de error dice que no puede abrir el fichero RESP.CH.FUORN..BHZ.

¿Seguro que existe? Fíjate que hay un par de '.' seguidos.
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: Problemas con ParseFile

Notapor astrid5 » 2010-08-05 17:31 @771

Tiene dos puntos seguidos debido a que my($station,$network,$component,$channel) = $sac->Fetch(qw(kstnm knetwk kcmpnm khole)), khole es igual a cero.

Entonces my $respName = "RESP.$network.$station.$channel.$component"; queda como RESP.CH.FUORN..BHZ.

Creo que Seed::Response no está creando el archivo nuevo.
astrid5
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2010-06-16 14:59 @666

Re: Problemas con ParseFile

Notapor explorer » 2010-08-05 17:59 @791

Sí, ya sabemos cómo se crea el nombre del fichero.

La pregunta, es, si ese fichero, tal cual es así, con los dos '.' seguidos, existe en el sistema de ficheros.

Porque el error dice que no lo puede abrir, y eso suele ser porque a) el fichero no existe, o b) el fichero está en un sitio distinto en donde está mirando el programa.
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: Problemas con ParseFile

Notapor astrid5 » 2010-08-09 18:03 @793

Al parecer el archivo no existe, ni con un "." ni con dos.
astrid5
Perlero nuevo
Perlero nuevo
 
Mensajes: 10
Registrado: 2010-06-16 14:59 @666


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 30 invitados

cron