Vstupní soubor se otevře a sekvenčně se prochází. Komponenty, které splňují kritérium výběru, se zapisují do výstupního souboru.
Pro výběry ze souboru se používají tyto standardní procedury a funkce:
assign, reset, rewrite, read, write, close.
Následující příklad ukazuje výběr ze souboru těch řádek, které obsahují číslice.
program vybersoub;
{$APPTYPE CONSOLE}
// Projekt: PP01 Autor:Kopeček Datum: 18.4.2005
// Funkce: Vybírá ze souboru řádky obsahující číslice
uses
SysUtils;
const
JMENO_SOUB = 'vybersoub.dpr'; // původní soubor
VYBRANY_SOUB = 'vybrany.txt'; // druhá část souboru
var
f,g:text; // deklarace textového souboru
s:string;
function cislice(s:string): boolean;
var
i:integer;
je_tam:boolean;
begin
je_tam := false;
for i:= 1 to length(s) do // výběrové kriterium / obsahuje číslici
if (s[i] >= '0') and (s[i] <= '9') then je_tam := true;
cislice := je_tam;
end;
begin
assign(f,JMENO_SOUB); // přiřazení jména souboru a souboru na disku
assign(g,VYBRANY_SOUB);
{$I-} // vypnutí standardního ošetření chyb
reset(f); // pokus o otevřeni pro čteni
if ioresult <> 0 then begin // soubor neexistuje
writeln('soubor ',JMENO_SOUB,' neexistuje');
readln;
halt;
end;
rewrite(g); // otevření pro zápis
if ioresult <> 0 then begin // test zda nedošlo k chybě při otevření
writeln('chyba pri otevirani souboru',VYBRANY_SOUB);
readln; // čekání na operátora
halt; // okamžité ukončení programu
end;
while not eof(f) do begin
readln(f,s); // čti řádku
// ošetření neznámé chyby
if ioresult <> 0 then begin
writeln('Neznámá chyba pri cteni?');
readln;
halt;
end;
if cislice(s) then begin
writeln(g,s); // zapiš řádku
if ioresult <> 0 then begin
writeln('Plna disketa ?');
readln;
halt;
end;
end
else writeln(s);
end;
close(f);
if ioresult <> 0 then begin // nepravděpodobná chyba
writeln('chyba pri zavirani souboru', JMENO_SOUB);
readln;
halt; // okamžité ukončení programu
end;
close(g);
if ioresult <> 0 then begin // nepravděpodobná chyba
writeln('chyba pri zavirani souboru',VYBRANY_SOUB);
readln;
halt; // okamžité ukončení programu
end;
writeln('Konec programu');
readln;
{$I+} // zapnutí standardního ošetření chyb
end.