pliki (6)










PERL 5 - Kurs





UCHWYTY PLIKÓW
document.write(("" + getDateStr()+"").fontcolor("white"))



Spis treści
Strona główna
O języku Perl
Zmienne skalarne
Operatory
Tablice i listy
Tablice rozproszone
Wyrażenia warunkowe
Pętle
Operacje na zmiennych
Wyrażenia regularne
Procedury
Pliki, wejście/wyjście
Odwołania
Struktury danych
CGI
Pola formularzy
Odczyt danych
Generowanie strony




Standardowe wejście/wyjście oraz uchwyty plików

Co to są uchwyty plików
Perl oferuje możliwość odczytywania i zapisywania danych z/do standardowego wejścia i wyjścia. Standardowe wejście oznaczamy jako <STDIN>, wyjście jako .
STDIN jest specjalnym, wbudowanym uchwytem pliku reprezentującym standardowe wejście. Nawiasy nazywane operatorem wejścia służą do czytania danych z uchwytu. Zapis <STDIN> oznacza "czytaj dane ze standardowego wejścia". Przypisanie <STDIN> do zmiennej skalarnej:

$skalar = <STDIN>;

oznacza odczytanie całego wiersza danych ze standardowego wejścia (do momentu napotkania znaku nowej linii) i przypisanie go do zmiennej $scalar. Natomiast instrukcja:

@tablica = <STDIN>;

zapisze do tablicy @tablica wszystkie wiersze ze standardowego wejścia jako elementy tablicy.

Wyprowadzanie danych na standardowe wyjście
W celu wyprowadzenia danych na ekran monitora stosuje się funkcję print. Jest to najlepszy przykład wysyłania danych na standardowe wyjście, którym w tym przypadku jest monitor. Zapis:

print "To jest jakis tekst\n";

spowoduje wyświetlenie komunikatu "To jest jakis tekst". Ponieważ fukncja print domyślnie wysyła dane na standardowe wyjście, nie ma konieczności dodawania STDOUT. Zapis:

print STDOUT "To jest jakis tekst\n";

da dokładnie taki sam efekt jak zapis poprzedni. Słowo STDOUT jest tu zupełnie zbędne.

Uchwyty plików
Odczytywać i zapisywać dane można nie tylko ze standardowego wejścia i wyjścia, ale także z plików. Aby móc czytać dane z pliku należy utworzyć tzw. uchwyt pliku. Uchwyt ten tworzony jest podczas otwierania pliku za pomocą funkcji open:

open(PLIK, "sciezka_do_pliku");

Pierwszym argumentem tej funkcji jest nazwa uchwytu, która w dalszej części programu będzie jednoznacznie wskazywać na ten plik. Sciezka_do_pliku wskazuje lokalizację pliku.
Domyślnie funkcja open otwiera plik do odczytu. Aby móc zapisać lub dopisać dane do pliku konieczne jest zastosowanie znaku > lub >>:

open(PLIK, ">plik.txt"); # otwarcie pliku do zapisu
open(PLIK, ">>plik.txt"); # otwarcie pliku do dopisywania


Funkcja die
Funkcja die występuje niemal zawsze w połączeniu z funkcją open. Ma ona na celu zatrzymanie programu i wyświetlenie komunikatu o błędzie w przypadku, gdy otwarcie pliku zakończy się niepowodzeniem:

open(PLIK, "plik.txt") || die "Nie można otworzyć pliku";


Czytanie danych z pliku
Tak jak w przypadku odczytu danych ze standardowego wejścia, tak i tu stosujemy operator :

open(PLIK, "plik.txt") || die "Nie można otworzyć pliku";
$scalar = <PLIK>;

Po wykonaniu powyższej operacji zmienna $scalar będzie zawierać pierwszy wiersz z pliku plik.txt. powtarzając przypisanie uchwytu do skalara będziemy przypisywać kolejne linie z pliku. W celu przetworzenia wszystkich wierszy w danym pliku, często stosuje się pętlę while:

while ($scalar = <PLIK>) {
  # operacje na zmiennej $scalar;
}

Pętla ta zakończy działanie dopiero po napotkaniu znaku końca pliku.

Zapis danych do pliku
Aby móc zapisać dane do pliku, najpierw trzeba otworzyć go z możliwością zapisu:

open(PLIK, ">plik.txt");

lub dopisywania:

open(Plik, ">>plik.txt");

Do przeprowadzenia operacji zapisu stosujemy funkcję print z dodatkową informacją na temat miejsca zapisu danych. Polecenie:

print PLIK "Dane do pliku";

powoduje zapis łańcucha "Dane do pliku" do pliku wskazywanego przez uchwyt PLIK.
Zapis i dopisywanie do pliku to dwie różne operacje. Pierwsza z nich kasuje poprzednią zawartość pliku i w jej miejsce wprowadza nowe dane, druga natomiast nie usuwa informacji z pliku, a nowe dane zostają dopisane na jego końcu.
Po zakończeniu operacji na pliku należy zamknąć uchwyt:

close PLIK;



Autor: Wiercioch Łukasz







Wyszukiwarka

Podobne podstrony:
C w7 pliki operacje we wy
34 Pliki Operacje na plikach w Pascalu
Blender(jak załadować pliki)
pliki typu com
PAS pliki zdefiniowane
cw08 pliki wina
pliki (3)
pliki
PLIKI (13)
Pliki, struktury, komorki
Pliki wsadowe, partycja, sektor, klaster, FAT, NTFS
Porady Pliki systemowe
pliki
Tropimy pliki tymczasowe
pliki ?IB2
LibreOffice a pliki Microsoftu
01 cw pliki wsadowe 1
koza pliki satka
Analizuje podejrzane pliki i adresy URL

więcej podobnych podstron