![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
ApTeMoHnv |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Артём Репутация: ![]() ![]() ![]() |
В общем, суть такая. Есть игра, в которой должна быть функция сохранения/загрузки. Реализовал я это через массивы и вписывания/выдирания чисел из/в файла.
Перед игрой, он спрашивает, хотим ли мы загрузить предыдущую игры (те числа, которые впишутся в переменные). Если такой уже файл есть, то всё понятно. Но что делать, если игрок первый раз зашёл в игру, но всё-равно нажал "Да", хотя такого файла ещё не существует? Как определить, есть ли такой файл с определённым именем в папке, где находится игра? И как создать через Паскаль, если его нету? Спасибо за внимание |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Как определить, есть ли такой файл с определённым именем в папке, где находится игра? И как создать через Паскаль, если его нету? Отключить обработку ошибок ввода/вывода и попробовать открыть файл для чтения. Если файла нет, 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), другие значения сигнализируют о других причинах того, что файл не был открыт. Также надо еще обрабатывать возможную ошибку при создании нового файла: у пользователя может не быть прав на это, тогда вылетит ошибка, может элементарно не хватить места, и т.д.) - или новый (пустой), или ранее существующий. |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 2:33 |