🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
6 messages
6 total messages Started by Bartek Papierski Wed, 29 Oct 1997 13:35
wyciecie konkretnej linii z pliku
#645
Author: Bartek Papierski
Date: Wed, 29 Oct 1997 13:35
12 lines
859 bytes
Czesc,

Raczkuje w perlu, wiec mam do Was pytanie:

Chcialem wyciac linie na przyklad 3 i 4 z pliku tekstowego.
Czy da sie to zalatwic jakas maska?
Prosze o pomoc.

_/ _/ _/
_/ _/ _/   Bartek Papierski - PACTOR ATK
_/ _/ _/      bartek@pactor.tpnet.pl
_/ _/ _/    http://www.pactor.tpnet.pl
Re: wyciecie konkretnej linii z pliku
#646
Author: Grzegorz BRZESKI
Date: Thu, 30 Oct 1997 11:54
20 lines
1052 bytes
Bartek Papierski wrote:

> Chcialem wyciac linie na przyklad 3 i 4 z pliku tekstowego.
> Czy da sie to zalatwic jakas maska?

open(FILE, "/path/plik.txt");
	@file = <FILE>;
close FILE;

print $file[2]; #linia 3
print $file[3]; #linia 4

exit;

Z pozdrowieniami,

Grzegorz BRZESKI

--
Grzegorz BRZESKI - WEB Corporation Polska Sp. z o.o.
Re: wyciecie konkretnej linii z pliku
#650
Author: Piotr Piatkowski
Date: Fri, 31 Oct 1997 14:47
43 lines
1548 bytes
Bartek Papierski <bartek@pactor.tpnet.pl> wrote:
: Czesc,

: Raczkuje w perlu, wiec mam do Was pytanie:

: Chcialem wyciac linie na przyklad 3 i 4 z pliku tekstowego.
: Czy da sie to zalatwic jakas maska?
: Prosze o pomoc.

Jeżeli przez maskę rozumiesz wyrażenie regularne, to niby można, ale 
nie jest to najlepsze rozwiązanie. Znacznie ładniej będzie np. tak:

while(<>) {
 if( 3..4 ) {
   # to rób dla linii 3 i 4 ...
 }
 else {
   # ...a to dla pozostałych.
 }
}

Co jest mniej więcej równoważne takiej konstrukcji:

$flipflop = 0;
while(<>) {
 if( ! $flipflop && $. == 3 ) {
   $flipflop = 1;
 }
 if( $flipflop ) {
   # ...
 }
 else {
   # ...
 }
 if( $flipflop && $. == 4 ) {
   $flipflop = 0;
 }
}

(a $. to numer aktualnie przetwarzanej linii z pliku wejściowego).

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Re: wyciecie konkretnej linii z pliku
#647
Author: Szymon Sokol
Date: Tue, 04 Nov 1997 10:16
22 lines
1513 bytes
Grzegorz BRZESKI <gregory@webcorp.com.pl> wrote:
: Bartek Papierski wrote:

:> Chcialem wyciac linie na przyklad 3 i 4 z pliku tekstowego.
:> Czy da sie to zalatwic jakas maska?

: open(FILE, "/path/plik.txt");
: 	@file = <FILE>;
: close FILE;

: print $file[2]; #linia 3
: print $file[3]; #linia 4

Nie zalecam dla dużych plików. Proszę zauważyć, że tu się cały plik 
ładuje do pamięci. Jak maszyna ma 16MB RAM i 32MB swap (taki typowy
domowy Linux), a plik >50MB, to amen. Lepsze jest rozwiązanie 
Kazia...
-- 
  A    GGGG H   H  Szymon Sokół -- administrator sieci
 A A  G     H   H  Uczelniane Centrum Informatyki Akademii Górniczo-Hutniczej
AAAAA G GGG HHHHH  al. Mickiewicza 30, 30-059 Kraków.      FAX +48 12 6338907
A   A  GGGG H   H  http://galaxy.uci.agh.edu.pl/~szymon/   TEL +48 12 6172894
Re: wyciecie konkretnej linii z pliku
#648
Author: Grzegorz BRZESKI
Date: Tue, 04 Nov 1997 13:48
15 lines
1234 bytes
Szymon Sokol wrote:
> 
> Nie zalecam dla du¿ych plików. Proszê zauwa¿yæ, ¿e tu siê ca³y plik
> ³aduje do pamiêci. Jak maszyna ma 16MB RAM i 32MB swap (taki typowy
> domowy Linux), a plik >50MB, to amen. Lepsze jest rozwi±zanie
> Kazia...

Oczywiscie. 

Dla duzych plikow nawet chyba wykonanie komendy systemowej head lub tail
bylo by szybsze dla plikow >50Mb. Ale nie sprawdzalem tego.

Z pozdrowieniami,

Grzegorz BRZESKI
Re: wyciecie konkretnej linii z pliku
#649
Author: Grzegorz Szyszl'o
Date: Tue, 04 Nov 1997 14:59
25 lines
1707 bytes
Grzegorz BRZESKI <gregory@webcorp.com.pl> wrote:
>Szymon Sokol wrote:
>> 
>> Nie zalecam dla du¿ych plików. Proszê zauwa¿yæ, ¿e tu siê ca³y plik
>> ³aduje do pamiêci. Jak maszyna ma 16MB RAM i 32MB swap (taki typowy
>> domowy Linux), a plik >50MB, to amen. Lepsze jest rozwi±zanie
>> Kazia...
>
>Oczywiscie. 
>
>Dla duzych plikow nawet chyba wykonanie komendy systemowej head lub tail
>bylo by szybsze dla plikow >50Mb. Ale nie sprawdzalem tego.
>
>Z pozdrowieniami,
>
>Grzegorz BRZESKI

a ja sprawdzalem. head czy tail, rezerwuja sobie pamiec tylko dla kilku
linii tekstu.

-- 
/===================================\    oOOo      W temperaturze zera
| http://avalon.wbc.lublin.pl/~znik/ \===\__/==\   bezwzglednego swiatlo
| Grzegorz Szyszlo   mailto:znik@wbc.lublin.pl |   zmienia postac
\==============================================/   alotropowa   (by Znik)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads