Vonbo Skrevet 16. november 2004 Del Skrevet 16. november 2004 Jeg lurer på hvordan jeg skal lagre en fil jeg mottar i client. Filen kommer slik: $socket->recv($innhold,$BUFFSIZE); og $innhold inneholder filen jeg vil lagre lokalt. $file inneholder navnet på fila. Så skal jeg lagre denne fila lokalt, og må vel da opprette en tom fil med samme navn som $file, og deretter åpne den og legge inn? Tror jeg har dette riktig, men fikk det ikke til å virke. Prøvde med print "touch $file"; for å opprette fil, men med dårlig resultat. Noen som har gjort det samme? Lenke til kommentar
Xizor Skrevet 16. november 2004 Del Skrevet 16. november 2004 Prøv dette. open(FILE,>/path/$file) or die "Can`t open file $file for writing!"; print FILE "$innhold"; close(FILE); For å lage en fil i perl can du bruke system() system(touch /path/$file); - Xizor Lenke til kommentar
Vonbo Skrevet 17. november 2004 Forfatter Del Skrevet 17. november 2004 (endret) Skal se på det i morgen. Takk for svar. Endret 17. november 2004 av Vonbo Lenke til kommentar
Torbjørn Skrevet 17. november 2004 Del Skrevet 17. november 2004 obs-obs. andre argument til open skal være en streng, dvs med string quotes (lurt å legge på or die og): open FILE, ">/path/$file" or die "something went wrong: $!"; print FILE $innhold; # trenger ingen string quotes her. close FILE; Videre, unngå å bruke systemkall hvis mulig. for å skrive til en fil, trenger du ikke "touche" den. open FILE,">filnavn"; # vil lage "filnavn". hvis du likevel vil touch'e, se på modulen File::Touch http://search.cpan.org/~nwetters/File-Touch-0.01/Touch.pm Lenke til kommentar
Vonbo Skrevet 17. november 2004 Forfatter Del Skrevet 17. november 2004 Noe gjør jeg feil, men ser ikke hva.. så jeg poster koden i håp om hjelp: elsif($answer =~ /get/) { @kom = split(" ", $answer); $file = $kom[1]; $socket->recv($innhold,$BUFFSIZE); open(FILE,">$file") or die "Can`t open file $file for writing!"; print FILE $innhold; close(FILE); } $innhold inneholder filen som ble spurt etter. Og $file inneholder filnavnet. Split'en er for å fjerne get foran filnavnet. Hvorfor lager ikke dette en ny fil? Alt den gjør er å skrive ut filen til skjerm. Det viser at jeg mottar filen, men jeg ber den alikevel ikke om å skrive ut filen slik jeg ser det. Noen forklaring på dette? Lenke til kommentar
Torbjørn Skrevet 17. november 2004 Del Skrevet 17. november 2004 legg inn print "Attempting to store contents in file...<br/>\n"; inni den elsif setninga. Lenke til kommentar
Vonbo Skrevet 17. november 2004 Forfatter Del Skrevet 17. november 2004 hmm.. riktig.. den skriver ut print-setninga, men kommer tydeligvis ikke lenger... Hva kan det skyldes? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå