• Publicidad

Problemas al escribir en un fichero

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

Problemas al escribir en un fichero

Notapor dacons » 2006-03-23 20:20 @888

Hola de nuevo.

Tengo un pequeño problemilla con mi código, lee pero no escribe y no consigo saber dónde falla. Una ayudita, por favor.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $usu = "monica";
  2.  
  3. sub muestra {
  4.     if ( open( FICH, "$usu.txt" ) ) {
  5.         @fila     = <FICH>;
  6.         $n_cuenta = $usuario[0];
  7.         $mov1     = $usuario[1];
  8.         $din1     = $usuario[2];
  9.         $mov2     = $usuario[3];
  10.         $din2     = $usuario[4];
  11.         $mov3     = $usuario[5];
  12.         $din3     = $usuario[6];
  13.         $mov4     = $usuario[7];
  14.         $din4     = $usuario[8];
  15.         $saldo    = $usuario[10];
  16.     }
  17.     close(FICH);
  18.     if ( open( FICH, ">$usu.txt" ) ) {
  19.         $nuevo = 4556;
  20.         print FICH ("$n_cuenta");
  21.         print FICH ("$mov2");
  22.         print FICH ("$din2");
  23.         print FICH ("$mov3");
  24.         print FICH ("$din3");
  25.         print FICH ("$mov4");
  26.         print FICH ("$din4");
  27.         print FICH ("Reintegro cajro");
  28.         print FICH ("$saldo");
  29.         print FICH ("saldo");
  30.         print FICH ("$nuevo");
  31.     }
  32.     close(FICH);
  33. }
  34. &muestra;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
dacons
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-02-27 04:15 @219

Publicidad

Notapor kidd » 2006-03-24 00:14 @051

Hola.

Lo primero es que debes de acostumbrarte a usar el pragma strict, te va a ayudar a hacer mucho mejor código.

Ahora tu código podría quedar así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $usu = "monica";
  2.  
  3. sub muestra {
  4.  
  5.     #Creamos la variable de archivo
  6.     my $file = $usu . ".txt";
  7.  
  8.     #Checamos si existe el archivo
  9.     if ( -e $file ) {
  10.  
  11.         open my $in, '<', $file or die("No se pudo abrir el archivo: $!");
  12.         my @file = <$in>;
  13.         close $in;
  14.  
  15.         #Asignamos el contenido de @usuarios
  16.         #a las variables
  17.         my ( $n_cuenta, $mov1, $din1, $mov2, $din2, $mov3, $din3, $mov4, $din4, $saldo ) = @usuario;
  18.  
  19.         my $nuevo = 4556;
  20.  
  21.         #Abrimos para escritura
  22.         open my $out, '>', $file or die("No se pudo abrir el archivo: $!");
  23.         print {$out} "$n_cuenta";
  24.         print {$out} "$mov2";
  25.         print {$out} "$din2";
  26.         print {$out} "$mov3";
  27.         print {$out} "$din3";
  28.         print {$out} "$mov4";
  29.         print {$out} "$din4";
  30.         print {$out} "Reintegro cajro";
  31.         print {$out} "$saldo";
  32.         print {$out} "saldo";
  33.         print {$out} "$nuevo";
  34.         close $out;
  35.  
  36.     }
  37.  
  38. }
  39.  
  40. muestra();
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Ahora no sé muy bien lo que quieres hacer, pero creo que cuando asignas las variables del array @usuario, realmente lo quisieras hacer del array @fichero, ahí podría estar tu error.


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado