IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Проверка файла в директории, Помогите разобраться, как это сделать
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


В общем, суть такая. Есть игра, в которой должна быть функция сохранения/загрузки. Реализовал я это через массивы и вписывания/выдирания чисел из/в файла.
Перед игрой, он спрашивает, хотим ли мы загрузить предыдущую игры (те числа, которые впишутся в переменные).
Если такой уже файл есть, то всё понятно. Но что делать, если игрок первый раз зашёл в игру, но всё-равно нажал "Да", хотя такого файла ещё не существует? Как определить, есть ли такой файл с определённым именем в папке, где находится игра? И как создать через Паскаль, если его нету?
Спасибо за внимание
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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), другие значения сигнализируют о других причинах того, что файл не был открыт. Также надо еще обрабатывать возможную ошибку при создании нового файла: у пользователя может не быть прав на это, тогда вылетит ошибка, может элементарно не хватить места, и т.д.) - или новый (пустой), или ранее существующий.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.10.2020 16:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name