Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Error al introducir el contenido de un fichero a un vector

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Vie May 02, 2008 5:51 pm
jbgae
Perlero Nuevo
Perlero Nuevo
Registrado: 02 May 2008
Mensajes: 4
Error al introducir el contenido de un fichero a un vector Responder citando

Hola, tengo un problemilla con un ejercicio. Aquí os muestro lo que tengo:

Perl:
opendir (DIR, $dir);
@contenido_directorio =readdir (DIR);
closedir (DIR);

if (-s $fich){   #$fich es un argumento que ya me han pasado
        open (FICH,">>$fich");
        @contenido_fichero = <FICH>;      #PROBLEMA
       
        foreach $elemento (@contenido_directorio){
                $ruta = $dir."/".$elemento;
                foreach $linea (@contenido_fichero){  #esto tampoco va
                        @campos = split / /, $linea;

                        $id = $campos[0];
                        $orden = chomp($campos[-1]);
                        if (-r $ruta && -x $ruta && !(-d $ruta)){
                                if($ruta eq $orden){
                                        $id++;
                                        $min = 0;
                                        $mes = "*";
                                        $dia_semana = "*";
                                        print FICH "$id $min $hora $dia $mes $dia_semana $ruta\n";
                                }
                        }
                }
               
        }
}

else{
        open (FICH,">$fich");
       
        foreach $elemento (@contenido_directorio){
                $ruta = $dir."/".$elemento;
                if (-r $ruta && -x $ruta && !(-d $ruta)){
                                $id++;
                                $min = 0;
                                $mes = "*";
                                $dia_semana = "*";
                                print FICH "$id $min $hora $dia $mes $dia_semana $ruta\n";
                               
                }
        }

}


Se trata que si el fichero no existe o se encuentra vacío, pues tengo que crearlo e introducir en el una línea por cada script que tenga el directorio, y si existe pues comprobar que el script no esté ya en el fichero y si no lo está pues introducir una linea en él. Creo que no me explicado muy bien.

Bueno mi problema es cuando realizo @contenido_fichero = <FICH> ya que este vector siempre me sale que está vacío cuando el fichero no lo está, y realmente no entiendo qué es lo que hago mal.

Espero que puedan ayudarme.

Muchas gracias de antemano.
Mensaje Vie May 02, 2008 6:15 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
Responder citando

Bienvenido a los foros de Perl en Español.

Estás abriendo el fichero en modo añadir (>>). Usa el modo lectura escritura (+<).

O primero leer todo el contenido y luego volver a abrirlo en modo escritura.

Si abres el fichero en modo añadir, el puntero del fichero se coloca al final, por lo que no lees nada con esa sentencia.
Mensaje Vie May 02, 2008 6:23 pm
jbgae
Perlero Nuevo
Perlero Nuevo
Registrado: 02 May 2008
Mensajes: 4
Responder citando

Ya lo entendí, muchas gracias por tu claridad y sobre todo por tu rapidez al contestar
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group