FileExists MacOS Lazarus (файл есть, а результат "false"

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

FileExists MacOS Lazarus (файл есть, а результат "false"

Сообщение snkip » 14.06.2020 16:47:33

Всем привет!
Делаю небольшую БД для собственных нужд, опыта в программировании нет. Хотел хранить настройки для подключения к БД в ini файле,
выполняя предварительную проверку наличия файла.
При работе в Windows такой код работает, а в MacOS - нет! В чем может быть причина?
Привел пример самого упрощенного варианта кода и попробовал проверять наличие простого txt файла, но результат - false.
А также хотел спросить, может настройки можно хранить в простом txt?
Заранее спасибо, буду благодарен за любые советы!

Код: Выделить всё
procedure TForm1.FormShow(Sender: TObject);
begin
  if FileExists('test.txt')
  then ShowMessage('Файл существует!')
  else ShowMessage('Файл не найден!');
end;
snkip
незнакомец
 
Сообщения: 9
Зарегистрирован: 14.06.2020 16:27:30

Re: FileExists MacOS Lazarus (файл есть, а результат "false"

Сообщение Ichthyander » 14.06.2020 23:59:09

Скорее всего нужно указать абсолютный (полный) путь к файлу
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 527
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: FileExists MacOS Lazarus (файл есть, а результат "false"

Сообщение Снег Север » 15.06.2020 09:23:53

snkip писал(а):А также хотел спросить, может настройки можно хранить в простом txt?

В смысле - использовать расширение файла txt, вместо ini? Можно. Можно и cnf - в unix-подобных системах. Важно чем вы его открываете в программе.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2547
Зарегистрирован: 27.11.2007 16:14:47

Re: FileExists MacOS Lazarus (файл есть, а результат "false"

Сообщение snkip » 15.06.2020 12:17:51

Всем привет!
Спасибо, что откликнулись!
Сегодня запустил этот пример в Ubuntu, все работает отлично!
Может в MacOS что-то с правами доступа не так? Хотя писать в эту папку получается (из программы).
При выполнении GetCurrentDir возвращает "/", я так понимаю, что с окружением все в порядке и по идее наличие файла должно проверяться в текущей папке.
snkip
незнакомец
 
Сообщения: 9
Зарегистрирован: 14.06.2020 16:27:30

Re: FileExists MacOS Lazarus (файл есть, а результат "false"

Сообщение SSerge » 16.06.2020 08:17:58

snkip писал(а):При выполнении GetCurrentDir возвращает "/", я так понимаю, что с окружением все в порядке и по идее наличие файла должно проверяться в текущей папке.


Текущая папка "./"
Папка "/" - корневой каталог ОС
SSerge
энтузиаст
 
Сообщения: 888
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: FileExists MacOS Lazarus (файл есть, а результат "false"

Сообщение snkip » 16.06.2020 10:31:50

SSerge писал(а):
snkip писал(а):При выполнении GetCurrentDir возвращает "/", я так понимаю, что с окружением все в порядке и по идее наличие файла должно проверяться в текущей папке.


Текущая папка "./"
Папка "/" - корневой каталог ОС


Понял, спасибо!
Я полагал, что папка проекта воспринимается как корневая. Сейчас попробовал в Linux, выдает полный путь. Похоже нужно с настройкой окружения разобраться.
Еще раз спасибо за наводку!
snkip
незнакомец
 
Сообщения: 9
Зарегистрирован: 14.06.2020 16:27:30

Re: FileExists MacOS Lazarus (файл есть, а результат "false"

Сообщение Снег Север » 16.06.2020 13:20:01

Для получения каталога исполняемого файла использую всегда ExtractFilePath(Application.ExeName)
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2547
Зарегистрирован: 27.11.2007 16:14:47

Re: FileExists MacOS Lazarus (файл есть, а результат "false"

Сообщение snkip » 19.06.2020 13:52:10

Спасибо всем!
snkip
незнакомец
 
Сообщения: 9
Зарегистрирован: 14.06.2020 16:27:30


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Adsense [Bot], Yandex [Bot] и гости: 10

Рейтинг@Mail.ru