Programowanie Główna arrow perl arrow Perl: Pliki


Perl: Pliki

Poniżej przedstawiony zostanie program, który wyświetli zawartość pliku moje.txt.
 

#!/usr/local/bin/perl
#
#
#
# Program otwierający plik /home/stelmik/moje.txt, odczytujący go,
po czym go wyświetla i na koniec zamyka.
$plik = '/home/stelmik/moje.txt'; # nazwa pliku
open(DANE, $plik); # otwarcie pliku do odczytu
@linie = <DANE>; # przekazanie zawartości pliku do tablicy @linie
close(DANE); # zamknięcie pliku
print @linie; # wyświetla tablica

Użyta funkcja open w programie ma postać ogólną
 

open(wskaznik_pliku, $nazwa)

Otwiera ona plik do odczytu, określony przez zmienną $nazwa. Wskaznik_pliku jest wskaźnikiem do pliku, umożliwiającym w dalszej części programu dokonywanie operacji na załadowanym pliku. Rozszerzenia sh (systemy Unix, Linux) pełnią bardzo przydatną rolę w lokalizacji plików. Jednak wpisanie wartości '~/moje.txt' do zmiennej $plik nie wywoła pożądanego efektu, gdyż aby nazwa była czytelna należałoby ująć ją w "łamane" nawiasy, tj. < >. Teraz w celu odwołania się do pliku moje.txt, który znajduje się w katalogu domowym można napisać:
 

$plik = '<~/moje.txt>';

Jest to poprawna, trochę skrócona forma.
 
Przedstawiony przykład otworzył plik tylko do odczytu. W jaki sposób można coś do niego zapisać? Otóż funkcja open umożliwia:
 
open(PLIK, $nazwa); # otwarcie pliku do odczytu
open(PLIK, "<$nazwa"); # otwarcie pliku do odczytu również
open(PLIK, ">$nazwa"); # otwarcie pliku do zapisu
open(PLIK, ">>$nazwa"); # otwarcie pliku w celu dokonania zmian (dopisania, itp.)
 
Aby zapisać jakąś informację w pliku należy wpisać komendę:
 

print PLIK "Ta linia znajdzie się w tym pliku. ";

Można również używając poniższych komend, otworzyć standardowe wejście (np. klawiatura) lub standardowe wyjście (np. ekran monitora):
 
open(INFO, '-'); # powoduje otwarcie standardowego wejścia
open(INFO, '>-'); # powoduje otwarcie standardowego wyjścia
 
Następna linia przykładu, tj.:
 

@linie = <DANE>;

przyporządkowuje każdą linię pliku do kolejnego elementu tablicy @linie. Gdyby zamiast @linie zostało napisane $linie, wtedy zapisana byłaby tylko jedna linia z pliku.
 
Funkcja close(wskaznik_pliku) zamyka dostęp do pliku. W przykładzie jest to linia:
 

close(DANE);

site copyright © http://www.e-kursy.com
Odzyskiwanie danych | programy | odzyskiwanie danych Poznań | odzyskiwanie zdjęć | Darmowe programy
akumulatory | aukcje | rowery | ubieranki | Pracownicy | Zakopane Hotele | projekty domów jednorodzinnych | Opony Bridgestone | Nieruchomości Szczecin | karnisze sklep