(*
var f1:text;                    {nelze zapisovat a ani nijak jinak pracovat, jde pouze pouzivat do promenych}
    f2:file of integer;         {soubor pouze slozeny z integeru}
    f2:file;                    {netypovy soubor}

Assign(f1, 'soubor.txt');       {prirazeni jmena souboru, neprovadi se zadna kontrola!!!}
Reser(f1);                      {otevreni souboru pro cteni/cteni a zapis, otevre existujici soubor pro cteni od zacatku
                                binarni soubory otvyrany vzdy pro cteni a zapis!}
Append(f1);                     {otevira existujici soubor pro zapis}
Rewrite(f1);                    {otevreni noveho souboru (smazani stareho)}
Close(f1)                       {uzavreni souboru - zavirat vzdy po dokonceni prace se souborem}
{pokud otvirame otevreny soubor, tak se uzavre a opet otevre}

Read/readln(f1, a);
Write/writeln(f1,'text pro zapis');

Eof(f1):boolean {prip. eoln - End of File/End of LiNe}

Zadani:
1) Odstranit ze souboru vicenasobne mezery
2) Zkontrolovat (a pripadne doplnit) mezery za interpunkci .,:;
Vlozeni retezce do retezce Insert
*)

uses crt;
var z: char;
    retezec:string;
    vstupsoubor:text;
    vystupsoubor:text;

procedure mezery(var s:string);
var pozice:integer;
begin
     repeat
           pozice:=pos('  ', s);
           delete(s, pozice,1);
     until pozice=0;
end;

procedure opravinterpunkci(var s:string; znak:char);
var i:integer;
begin
     for i:=length(s) downto 1 do
        begin
             if s[i]=znak then
                insert(' ', s, i+1);
        end;
end;

procedure interpunkce(var s:string);
begin
     opravinterpunkci(s, '.');
     opravinterpunkci(s, ',');
     opravinterpunkci(s, ';');
     opravinterpunkci(s, ':');
end;

begin
repeat
clrscr;
writeln('Trtkal 2008 - http://fei.trtkal.net');
writeln('-----------------------------------');
begin
     assign(vstupsoubor, 'ialjp_07_01_prace_se_soubory_vstup.txt');
     reset(vstupsoubor);
     assign(vystupsoubor, 'ialjp_07_01_prace_se_soubory_vystup.txt');
     rewrite(vystupsoubor);
     while not eof(vstupsoubor) do
     begin
          readln(vstupsoubor, retezec);
          interpunkce(retezec);
          mezery(retezec);
          writeln(vystupsoubor, retezec);
     end;
     close(vstupsoubor);
     close(vystupsoubor);
end;
writeln('-----------------------------------');
write('Opakovat a/n: ');readln(z);
until (z='n');
end.
