28. december 2008 - 14:18
Der er
6 kommentarer
Løb gennem en fil x antal tegn ad gangen
Hej, Jeg sidder med en problemstilling, som er nok nemmest at forklare med et eksempel. Jeg har en fil, der indeholder følgende aabbccddeeffgg og jeg vil have følgende som output: aa ab bb bc cc cd dd de .. .. Jeg har forsøgt med følgende: .. while (($n = read(F_IN, $data, 2, $offset)) != 0) { print "$data\n"; $offset += 1; } .. Men outputtet ser helt forkert ud: aa abb abcc abcdd abcdee abcdeff abcdefgh abcdefghi abcdefghij abcdefghijk abcdefghijk Er der nogen, der kan hjælp? Pft.
Annonceindlæg fra Infor
28. december 2008 - 14:26
#1
Skulle være nok at while (($n = read(F_IN, $data,2)) != 0) { print "$data\n"; }
28. december 2008 - 14:33
#2
Tak for dit svar :) Programmet skal læse x tegn ad gangen men kun hoppe 1 tegn frem ikke 2: aa ab bb bc ..
28. december 2008 - 14:37
#3
Ok, det fik jeg ikke læst. Vi kan jo løse det ved at gemme tegnet i en variabel i Perl, men ellers kan du spole een tilbage på filen. Fx: $offset=0; while (($n = read(F_IN, $data,2)) != 0) { print "$data\n"; $offset++; seek(F_IN,$offset,0); }
28. december 2008 - 14:42
#4
Hvis vi antager, at programmet skal gennemløbe en fil med 6 milliard tegn, vil det ikke være tungt, at spoole hele tiden tilbage? I mit eksempel, er det som om $data ikke tømmes mellem iterationer.
28. december 2008 - 14:44
#5
Den "spoler" kun tilbage i en buffer. Om det er for tungt kan du vel se ved at prøve.
28. december 2008 - 14:46
#6
Super Erik. Jeg tester nu her og vender tilbage med en status. mange tak for din hjælp :)
Kurser inden for grundlæggende programmering