Jue Mar 23, 2006 7:20 pm
|
 |
dacons
Perlero Nuevo

|
Registrado: 27 Feb 2006
Mensajes: 48
|
|
| Problemas al escribir en un fichero |
|
|
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; |
|
|
|

Jue Mar 23, 2006 11:14 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
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 |
|

Powered by phpBB © 2001, 2005 phpBB Group
|