Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пути не исповедимы


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]

Путь относительный, а текущий каталог процесса изменился.
Вот и не работает.


Наверх

Титульная страница Поиск, карта сайта Написать письмо