Textový soubor se otevře pomocí příkazu append, netextový příkazem reset. U netextového souboru se nastaví ukazatel zpracování na konec souboru příkazem seek (…,filesize). Druhý soubor se otevře příkazem reset. Dále se čte komponenta po komponentě druhého souboru a zapisuje se sekvenčně na konec prvního souboru.
Pro spojení souborů se používají tyto standardní procedury a funkce:
assign, rewrite, ioresult, write/writeln, close
Následující příklad ukazuje spojení dvou souborů na disketě.
program spojsoub;
{$APPTYPE CONSOLE}
// Projekt: PP01 Autor:Kopeček Datum: 14.4.2005
// Funkce: Spojuje dva soubory
uses
SysUtils;
const
JMENO_SOUB = 'a:vytvor.txt'; // původní soubor na disketě
KONV_SOUB = 'a:konv.txt'; // konvertovaný soubor na disketě
var
f,g:text; // deklarace textového souboru
s:string;
begin
assign(f,JMENO_SOUB); // přiřazení jména souboru a souboru na disku
assign(g,KONV_SOUB);
{$I-} // vypnutí standardního ošetření chyb
append(f); // pokus o otevreni pro rozšíření
if ioresult <> 0 then begin // soubor neexistuje
writeln('soubor ',JMENO_SOUB,' neexistuje');
readln;
halt;
end;
reset(g); // otevření pro čtení
if ioresult <> 0 then begin // test zda nedošlo k chybě při otevření
writeln('chyba pri otevirani souboru',KONV_SOUB);
readln; // čekání na operátora
halt; // okamžité ukončení programu
end;
while not eof(g) do begin
readln(g,s); // čti řádku
// ošetření neznámé chyby
if ioresult <> 0 then begin
writeln('Neznámá chyba pri cteni z diskety ?');
readln;
halt;
end;
writeln(f,s); // zapiš řádku
// ošetření chyby - například přeplnění diskety
if ioresult <> 0 then begin
writeln('Plna disketa ?');
readln;
halt;
end;
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',KONV_SOUB);
readln;
halt; // okamžité ukončení programu
end;
writeln('Konec programu');
readln;
{$I+} // zapnutí standardního ošetření chyb
end.