embret Skrevet 13. oktober 2004 Del Skrevet 13. oktober 2004 Hallo er en nybegynner i PERL, og jeg skal lese en linje fra en fil, fks linje 5 Finnes det noe enkel måte å gjøre det på eller må man begynne med løkker og slikt. use strict; use warnings; open ( FILE, "<config.txt") or die ("Unable to open file: $!\n"); <FILE>; my $length = tell (FILE); seek(FILE, 5 * $length, 0); print while(<FILE>); close(FILE) or die("Cant close file"); slik som jeg har gjort det nå så hopper jeg over de fem første linjene og skriver ut de resterende. Lenke til kommentar
sam2 Skrevet 13. oktober 2004 Del Skrevet 13. oktober 2004 (endret) Hei, tror seek og tell operer på bytes og er ikke egnet til å posisjonere i en text fil, dersom ikke du har en fil hvor alle linjer er like store.. Det er sikkert mange mange måter å gjøre dette på, særlig hvis du har store filer som skal behandles finnes det moduler som håndterer dette bedre. Men hvorfor ikke bare gjøre det enkelt og rett frem: open ( FILE, "<config.txt") or die ("Unable to open file: $!\n"); #skip over 5 første linjer <FILE> for 1..5; while (<FILE>) { #...... #loop gjennom resterende linjer i fil } Endret 13. oktober 2004 av sam2 Lenke til kommentar
Torbjørn Skrevet 16. oktober 2004 Del Skrevet 16. oktober 2004 ditt første eksempel forutsetter at alle linjene (hvertfall de 5 første) er like lange. Lenke til kommentar
Torbjørn Skrevet 16. oktober 2004 Del Skrevet 16. oktober 2004 Et par andre tips: *) sjekke modulen File::Slurp (perldoc File::Slurp) *) my @lines = <FILE>; # lese alle linjer inn i en array 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å