Помощь - Поиск - Пользователи - Календарь
Полная версия: Проверка файла в директории
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
ApTeMoHnv
В общем, суть такая. Есть игра, в которой должна быть функция сохранения/загрузки. Реализовал я это через массивы и вписывания/выдирания чисел из/в файла.
Перед игрой, он спрашивает, хотим ли мы загрузить предыдущую игры (те числа, которые впишутся в переменные).
Если такой уже файл есть, то всё понятно. Но что делать, если игрок первый раз зашёл в игру, но всё-равно нажал "Да", хотя такого файла ещё не существует? Как определить, есть ли такой файл с определённым именем в папке, где находится игра? И как создать через Паскаль, если его нету?
Спасибо за внимание
volvo
Цитата
Как определить, есть ли такой файл с определённым именем в папке, где находится игра? И как создать через Паскаль, если его нету?
Отключить обработку ошибок ввода/вывода и попробовать открыть файл для чтения. Если файла нет, IOResult будет отличен от 0, значит, создавать новый файл:

Assign(f, 'test.dat');
{$I-} Reset(f); {$I+} { <--- Пытаемся открыть существующий }
if IOResult <> 0 then begin { <--- не 0? Не получилось открыть файл, ошибка }
Rewrite(f); { Создаем новый файл }
end;
В результате у тебя будет открыт файл в любом случае (ну, если делать совсем правильно - надо проверять номер ошибки при Reset-е. Файла нет - это IOResult = 2 (File not Found), другие значения сигнализируют о других причинах того, что файл не был открыт. Также надо еще обрабатывать возможную ошибку при создании нового файла: у пользователя может не быть прав на это, тогда вылетит ошибка, может элементарно не хватить места, и т.д.) - или новый (пустой), или ранее существующий.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.