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