Словарь слов палиндромов

В текстовом файле записан текст одного из произведений, создать в новом файле словарь слов палиндромов(слова - без повторов, сортировать не надо)Решил так:
uses moi_modul_moio_bogatstvo;
type mn=set of char;
var f1, f2, f3:text; st,st3, sl:string;i:integer;
 
begin
 
assign(f1, 'f1.txt'); assign(f2, 'f2.txt'); assign(f3, 'f3.txt');
 
 
{b}reset(f1); rewrite(f2);
  while not eof(f1) do
      begin
       readln(f1,st);
        st:=' ' + st + ' ';
          i:=1;
            while i<=length(st) do
              begin
                sl:='';
                  while st[i]<>' ' do
                    begin
                      sl:=sl+st[i];
                       inc(i);
                    end;
              inc(i);
            if palindrom_dlya_str(sl) then writeln(f2, sl);
              end;
      end;
      close(f1);close(f2);
    
    v_text_file_bez_povtor(f2,f3);   
    
    reset(f3);
      while not eof(f3) do
         begin
           readln(f3,st3);
             writeln(st3);
         end;
         close(f3);
      end.
используя модуль, но компилятор выдаёт 105ую ошибку. Найти не могу, помогите кто-нибудь)
2 ответа

v_text_file_bez_povtor(f2,f3);
Что делает с файлом F3 твоя процедура? Она его создает? Если нет - надо перед вызовом добавить rewrite(f3), иначе файл не открыт для записи, а ты наверняка в него пытаешься что-то записывать.


вот что она делает)
procedure v_text_file_bez_povtor(var f1:text; var f2:text);
var st1, st2:integer; fl:boolean;
   begin
    reset(f1);
      rewrite(f2);
        close(f2);
     while not eof(f1) do
         begin
            readln(f1,st1);
              reset(f2);
               fl:=true;   
                 while not eof(f2) do
                      begin
                        readln(f2,st2);
                          if st1=st2 then fl:=false;
                      end;
                   if fl then writeln(f2,st1);
                             close(f2);
                      end;
             close(f1);
             end;