![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пути не исповедимы
zdm © (2007-03-20 11:26:00)Пути пректа:
сам ../dpr
исходники ../pas
исполняемые ../bin
на всяк. случай "разжую", т.е. папка, допустим, "мой проект" в ней dpr,pas,bin и есть там-же папочка settings, а в ней INI-шник. Раньше не заморачивался с распределением проекта по подпапкам и путь к файлу писал надежным способом
INI:=TIniFile.Create(ExtractFileDir(Application.ExeName)+ '\Settings\sett.ini');
сейчас пишу так
INI:=TIniFile.Create('..\Settings\sett.ini'); и при чем 15 мин назад работало, сделал несколько телодвижений с прогой не связанных с путями и блин перестала работать. т.е. выдавала норм. путь, а теперь так дословно и ищет ..\Settings\sett.ini
zdm (2007-03-20 12:01:00) [1]блин, прошу прощения у всех!!!!!!!
Работуют все варианты!!!! просто в имя файла INI закрался пробел
(sett .ini). Говорил, что ни чего не менял в путях-так и было,но не совсем, т.е. копировал, переименовывал и допереименовывался. Можно до конца жизни было утверждать, что ни чего не работает ;)
Извините, что отвлёк. Все равно СПАСИБО.
zdm (2007-03-20 11:51:00) [2]ключом был ExpandFileName, хотя по чему я так и не понял.
zdm (2007-03-20 11:49:00) [3]
> Reindeer Moss Eater © (20.03.07 11:43) [12]
а вот так работает. СПАСИБО!!!!
zdm (2007-03-20 11:47:00) [4]
INI:=TIniFile.Create(ExtractFileDir(Application.ExeName)+ '..\settings\Settings\sett.ini');
ShowMessage(ini.FileName);
ответ проги D:\мой проект\bin\..\Settings\sett.ini
> Рамиль © (20.03.07 11:41) [11]
абсолютно не эквиалентно. не видит он инишника. должно быть
D:\мой проект\Settings\sett.ini
Reindeer Moss Eater (2007-03-20 11:43:00) [5]Если через гланды, то
ExpandFileName(ExtractFileDir(Application.ExeName) + '\..') + '\Settings\sett.ini';
Рамиль (2007-03-20 11:41:00) [6]
> D:\мой проект\bin\..\Settings\sett.ini
Ну, это эквивалентно D:\мой проект\Settings\sett.ini
Не пойму в чем проблема тогда?
И вообще, инишники в appdata надо хранить
zdm (2007-03-20 11:39:00) [7]уйду в релоад, помогает иногда ;(((
zdm (2007-03-20 11:38:00) [8]
> Рамиль © (20.03.07 11:34) [3]
блин, она мне так и выдает
D:\мой проект\bin\..\Settings\sett.ini
Reindeer Moss Eater (2007-03-20 11:37:00) [9]т.е. моя_прога.exe находится по пути, допустим
Да пофик где она находится. Хоть на марсе.
Если ини не грузится, значит текущий каталог процесса изменился
Рамиль (2007-03-20 11:36:00) [10]Ну вообщем ты понял :) Выйди на каталог вверх, не надо к относительным путям привязываться.
Reindeer Moss Eater (2007-03-20 11:36:00) [11]куда он изменился-то? Если я из среды компилирую и запускаю, соответсвенно пути ни куда не менялись!!!
Включи голову.
Путь задан литералом и не меняется.
Но в нем есть .., что означает "этажом выше текущего каталога".
Ини не работает.
Что могло измениться?
Правильно.
Текущий каталог изменился.
А как он изменился - неважно.
zdm (2007-03-20 11:36:00) [12]т.е. моя_прога.exe находится по пути, допустим
D:\мой проект\bin\моя_прога.exe
а ini-шник по пути
D:\мой проект\Settings\sett.ini, запускается(компилится), соответсвенно всё по одним и тем же путям.
В общем может есть альтернативный выход, чем ..\
Рамиль (2007-03-20 11:34:00) [13]Ну так и пиши
INI:=TIniFile.Create(ExtractFileDir(Application.ExeName)+ '..\settings\Settings\sett.ini');
Рамиль (2007-03-20 11:34:00) [14]
> INI:=TIniFile.Create(ExtractFileDir(Application.ExeName)+
> '\..\settings\Settings\sett.ini');
zdm (2007-03-20 11:33:00) [15]
> Reindeer Moss Eater © (20.03.07 11:31) [1]
куда он изменился-то? Если я из среды компилирую и запускаю, соответсвенно пути ни куда не менялись!!!
Reindeer Moss Eater (2007-03-20 11:31:00) [16]Путь относительный, а текущий каталог процесса изменился.
Вот и не работает.