Perl en Español

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

Problemas al escribir en un fichero

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Jue Mar 23, 2006 7:20 pm
dacons
Perlero Nuevo
Perlero Nuevo
Registrado: 27 Feb 2006
Mensajes: 48
Problemas al escribir en un fichero Responder citando

Hola de nuevo
Tengo un pequeño problemilla con mi código, lee pero no escribe y no consigo saber donde falla. Una ayudita porfa

$usu="monica";
sub muestra
{
if(open(FICH,"$usu.txt") )
{
@fila=<FICH>;
$n_cuenta=$usuario[0];
$mov1=$usuario[1];
$din1=$usuario[2];
$mov2=$usuario[3];
$din2=$usuario[4];
$mov3=$usuario[5];
$din3=$usuario[6];
$mov4=$usuario[7];
$din4=$usuario[8];
$saldo=$usuario[10];
}
close(FICH);
if(open(FICH,">$usu.txt"))
{
$nuevo=4556;
print FICH ("$n_cuenta");
print FICH ("$mov2");
print FICH ("$din2");
print FICH ("$mov3");
print FICH ("$din3");
print FICH ("$mov4");
print FICH ("$din4");
print FICH ("Reintegro cajro");
print FICH ("$saldo");
print FICH ("saldo");
print FICH ("$nuevo");
}
close(FICH);
}
&muestra;
Mensaje Jue Mar 23, 2006 11:14 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

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í:

Código:

my $usu = "monica";


sub muestra {

#Creamos la variable de archivo
my $file = $usu . ".txt";

    #Checamos si existe el archivo
    if(-e $file){

        open my $in, '<', $file or die("No se pudo abrir el archivo: $!");
        my @file = <$in>;
        close $in;

        #Asignamos el contenido de @usuarios
        #a las variables
        my ($n_cuenta,$mov1,$din1,$mov2,$din2,$mov3,$din3,$mov4,$din4,$saldo) = @usuario;

        my $nuevo = 4556;

        #Abrimos para escritura
        open my $out, '>', $file or die("No se pudo abrir el archivo: $!");
        print {$out} "$n_cuenta";
        print {$out} "$mov2";
        print {$out} "$din2";
        print {$out} "$mov3";
        print {$out} "$din3";
        print {$out} "$mov4";
        print {$out} "$din4";
        print {$out} "Reintegro cajro";
        print {$out} "$saldo";
        print {$out} "saldo";
        print {$out} "$nuevo";
        close $out;

    }

}


muestra();


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
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