pondělí 8. února 2010

Práce se soubory I

Funkce
Význam
  assign(f: file, jmeno)
  Přiřadí proměnné typu file jméno souboru
  reset(f: file)
  Otevře soubor
  rewrite(f: file)
  Vytvoří nový soubor (nebo přepíše starý se stejným jménem)
  append(f: text)
  Otevře textový soubor a nastaví pozici na konec souboru
  close(f: file)
  Ukončí práci se souborem
  Filesize(f: file)
  Vrátí počet dat stejného typu jako soubor
  seek(f: file, pozice)
  Přejde na pozici v souboru
  filepos(f: file)
  Vrátí pozici v souboru
  rename(f: file, jmeno)
  Přejmenuje soubor na zadané jméno
  erase(f: file)
  Smaže soubor
  eof(f: text): boolean
  Logická hodnota - je pozice na konci souboru?
  eoln(f: text): boolean
  Logická hodnota - je pozice na konci řádku?
  readln(f: text, prom)
  Načte řádek do textové proměnné
  read(f: file, prom)
  Načte hodnotu do proměnné stejného typu jako soubor
  writeln(f: text, text)
  Zapíše text do textového souboru
  write(f: file, prom)
  Zapíše hodnotu stejného typu jako soubor




uses crt;
var f: text;
   pom: string;


begin
assign(f, 'muj.txt'); (* přiřadíme jméno *)
rewrite(f); (* vytvoříme soubor - nemusíme ho otvírat pomocí *)
         (* reset, protože funkce rewrite ho rovnou i otevře *)
repeat
 readln(pom);     (* uživatel zadá text *)
 delay (3000);
 writeln(f, pom); (* zapíšeme text do souboru *)
until pom = '';   (* dokud nebude zadáno nic *)
close(f);         (* ukončíme práci se souborem *)
end.
následující program vytvoří textový soubor:


type zaznam = record (* vytvoříme si vlastní typ záznamu *)
jmeno, prijm: string[20];
vek: byte;
end;


var f: file of zaznam; (* soubor *)
pom: zaznam; (* pomocná proměnná stejného typu jako soubor *)
pos: integer; (* pozice v souboru *)


begin
assign(f, 'data.dat'); (* přiřadíme jméno *)
rewrite(f); (* vytvoříme nový soubor *)
pos := 0; (* pozici nastavíme na 0 *)
repeat (* cyklus se opakuje do nekonečna *)
writeln('Jmeno: '); readln(pom.jmeno); (* uživatel zadá data *)
if pom.jmeno = '' then break; (* pokud je jméno prázdné, cyklus se ukončí *)
writeln('Prijmeni: '); readln(pom.prijm);
writeln('Vek: '); readln(pom.vek);
seek(f,pos); (* přejdeme na zadanou pozici v souboru *)
write(f,pom); (* zapíšeme data do souboru *)
pos := pos + 1; (* pozici zvedneme o 1 *)
until false; (* opakování cyklu *)
close(f); (* ukončíme práci se souborem *)
end.

zdroj: http://www.soom.cz/index.php?name=articles/show&aid=10

Žádné komentáře:

Okomentovat