Perl, Práce se soubory a adresáři (55.díl)

Napsal O webu (») 30. 9. 2008 v kategorii Programování, přečteno: 2562×
obrazky/logo_perl.jpg

Textové soubory

Textové soubory jsou charakteristické tím, že je jejich obsah organizován do řádků (části textu ukončené znaky konce řádku) a obsahuje převážně tisknutelné znaky.


Čtení ze souboru


Z textového souboru nejčastěji čteme pomocí operátoru <>. Mezi obě špičaté závorky píšeme jméno ovladače nebo skalární proměnnou se jménem či typeglobem ovladače, z něhož se má číst. Součástí načtených řetězců jsou také konce řádku. Chceme-li je odstranit, můžeme použít funkci "chomp". Té jako argument zadáme načtený řádek a vrácen bude řetězec bez znaku konce řádku. Je-li operátor <> uveden jako jediný výraz v podmínce cyklu while, pak je vyhodnocen ve skalárním kontextu a jeho návratová hodnota je uložena do proměnné $_.



while ($radek = <SOUBOR>) {

chomp $radek;

….

}




Psaní do souboru


Po otevření souboru pro zápis lze do něj zapisovat pomocí standardní funkce "print". Jako argument zadáme seznam hodnot, které mají být do souboru zapsány. V následujícím příkladu je přepsán obsah prvního souboru do druhého spolu s očíslováním řádků.



open SOUBOR, 'data.txt' or die "Nelze otevřít soubor: $!\n";

open CISLOVANY, '>data_cis.txt' or die "Nelze otevřít soubor: $!\n";

while (<SOUBOR>) {

print CISLOVANY "$.: $_";

}




Pohyb v souboru


Veškerý vstup a výstup do souboru se děje na aktuální pozici ukazatele pohybu v souboru. Hodnotu tohoto ukazatele můžeme ji zjistit funkcí "tell ". Pro změnu pozice ukazatele použijeme funkci "seek". Té jako argument zadáme jméno ovladače, počet bytů pro posun a hodnotu, jež určuje výchozí bod (začátek souboru, aktuální pozice nebo konec souboru).


Uzavření souboru


Explicitně uzavřeme soubor voláním funkce "close", které jako argument zadáme jméno ovladače. Většinou ale soubor explicitně uzavírat nemusíme. Implicitně je soubor uzavřen při znovuotevření ovladače nebo při ukončení programu. Rozdíl mezi explicitním uzavřením pomocí "close" a implicitním uzavřením je ten, že volání funkce "close" vymaže obsah proměnné $..


A to by bylo pro dnešek všechno. V dalším díle se podíváme na binární soubory. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.


Autor: Robert Habrman
Štítky: Perl
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel dvě a nula