Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Básico » Problemas al escribir en un fichero Responder al tema
Nuevo tema


Página 1 de 1  [ 2 mensajes ] 
 
Nota 2006-03-23 20:20 @888

Perlero Nuevo
Registrado: 2006-02-27 04:15 @219
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;


Nota 2006-03-24 00:14 @051
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
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

_________________
Uriel Lizama Perl programmer fundador de Perl en Español


Responder al tema  [ 2 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO