Помощь - Поиск - Пользователи - Календарь
Полная версия: В чем недочет программы (алгоритма)?..
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
MI666
Код


...

var
 bak,tmp: tsearchrec;
 pressed_key: char;
 f: text;
begin
 ...
 pressed_key:=readkey;
 case pressed_key of
   '1':
     begin
       findfirst('*.bak',faanyfile,bak);
       while doserror = 0 do
         begin
           assign(f,bak.name);
           {$i-}
           erase(f);
           {$i+}
           if (ioresult=0) and (doserror=0)
             then
               begin
                 findfirst('*.bak',faanyfile,bak);
                 findnext(bak);
                 assign(f,bak.name);
                 erase(f)
               end;
           findnext(bak)
         end;
       findfirst('*.tmp',faanyfile,tmp);
       while doserror = 0 do
         begin
           assign(f,tmp.name);
           {$i-}
           erase(f);
           {$i+}
           if (ioresult=0) and (doserror=0)
             then
               begin
                 findfirst('*.tmp',faanyfile,tmp);
                 findnext(tmp);
                 assign(f,tmp.name);
                 erase(f)
               end;
           findnext(tmp)
         end;
       mi666_exit
     end;
   '2':
     mi666_exit
   else
     mi666_exit
 end
end.

...



- удаляются не все файлы из текущей директории...
- после второго, третьего включения - обычно удаляются все файлы...
- иногда выводится runtime error <...> ...

thanks...
volvo
blink.gif У меня такой код:

Код

 case pressed_key of
  '1':
    begin
      findfirst('*.bak',faanyfile,bak);
      while doserror = 0 do
        begin
          assign(f,bak.name);
          {$i-}
          erase(f);
          {$i+}
          findnext(bak)
        end;

      findfirst('*.tmp',faanyfile,tmp);
      while doserror = 0 do
        begin
          assign(f,tmp.name);
          {$i-}
          erase(f);
          {$i+}
          findnext(tmp)
        end;
      mi666_exit
    end;
  '2':
    mi666_exit
  else
    mi666_exit
end


сразу удаляет все *.bak и *.tmp файлы ...
Остальное - по-моему лишнее...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.