Процесс не может получить доступ к файлу, так как этот файл используется другим процессом - PascalABC.NET
Формулировка задачи:
Все работает, кроме записи результатов в файл. В разделе описания с файла все норм считывается, а вот когда запускаю игру выводится такое сообщение: Unhandled Exception: System.IO.IOException: Процесс не может получить доступ к файлу "C:\Kursach\out.txt", так как этот файл используется другим процессом. в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) в System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) в System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost) в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost) в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding) в PABCSystem.PABCSystem.Rewrite(Text f, Encoding en) в C:\Program Files (x86)\PascalABC.NET\LibSource\PABCSystem.pas:строка 5679 в PABCSystem.PABCSystem.Rewrite(Text f) в C:\Program Files (x86)\PascalABC.NET\LibSource\PABCSystem.pas:строка 5670 в _kursach._kursach.Files() в C:\Kursach\KursachABC.pas:строка 53 в _kursach._kursach.$Main() в C:\Kursach\KursachABC.pas:строка 86 в KursachABC.Program.Main()Программа завершена, нажмите любую клавишу . . . Код:
Может у кого-нибудь еще будут идеи, как улучшить код?
Решение задачи: «Процесс не может получить доступ к файлу, так как этот файл используется другим процессом»
textual
Листинг программы
procedure Files; var S: string; begin clrscr; assign (out, 'C:\Kursach\out.txt'); reset (out); rewrite (out); writeln (out, 'Статистика: '); Igra; close (out); reset (out); end;
Объяснение кода листинга программы
- Объявлена процедура Files.
- В процедуре объявлена переменная S типа string.
- Выполняется команда clrscr, которая очищает экран.
- Выполняется команда assign(out, 'C:\Kursach\out.txt'), которая открывает файл out.txt для записи.
- Выполняется команда reset(out), которая сбрасывает файловый указатель в начало файла.
- Выполняется команда rewrite(out), которая перезаписывает файл.
- Выполняется команда writeln(out, 'Статистика: '), которая записывает в файл строку
Статистика:. - Выполняется процедура Igra.
- Выполняется команда close(out), которая закрывает файл.
- Выполняется команда reset(out), которая сбрасывает файловый указатель в начало файла.
- Процедура Files завершается.