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

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

Запор с INI файлами [D6, WinXP]


InfMag ©   (2004-11-07 18:57:00) 

Люди, объясните мне, почему я не могу работать с INI'шками в корневой папке, а только в папке пиндовса?..


InfMag   (2004-11-07 20:09:00) [1]

Да нет, вроде понятнее уже некуда...


Defunct   (2004-11-07 20:01:00) [2]

> InfMag ©   (07.11.04 19:46) [13]

Уважаемый InfMag

У вас дилемма - открыть Ini файл, который находится в одноименном каталоге с EXE файлом?

попробую объяснить на примере кода.
const
     IniFileName = 'conf.ini';

procedure TForm1.Button1Click(Sender: TObject);
var Directory   : String;
begin
 Directory := ExtractFilePath(ParamStr(0));
 // ParamStr(0) - имя фашего запущенного EXE файла.
 // ExtractFilePath возвращает имя каталога по имени файла с завершающим слешем.
 // итого Directory = "C:\...\..\...\" на месте точек какие-то имена реально существующих каталогов.
 // Убедимся в этом:
 ShowMessage(Directory);

 // Далее вы хотите открыть ini файл
 // Посмотрите как будет выглядеть полное имя ini файла:

 ShowMessage(Directory + IniFileName)
 // Еще вопросы?
end;


InfMag   (2004-11-07 19:53:00) [3]

Ну что я могу сказать, кроме спасибо... ;)


begin...end   (2004-11-07 19:50:00) [4]


> [13] InfMag ©   (07.11.04 19:46)

begin
 with TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'conf.ini') do
   try
     // Используем
   finally
     Free
end.

Теперь понятно?


InfMag   (2004-11-07 19:46:00) [5]

begin...end, спасибо конечно, но мне писать этот код к адресу ini?


begin...end   (2004-11-07 19:44:00) [6]


> [11] InfMag ©   (07.11.04 19:42)


> Мне нужно, чтобы у меня файл был например: file.exe, а ini
> - conf.ini и т.п.

Тогда ExtractFilePath(ParamStr(0)) + 'conf.ini'


InfMag   (2004-11-07 19:42:00) [7]

Люди, вы убьете мои нервы... Вы все больше меня путаете.
Мне нужно, чтобы у меня файл был например: file.exe, а ini - conf.ini и т.п.
Дык это правда, что str.exe просто станет str.ini?
И вобще где писать - ChangeFileExt(ParamStr(0),'.ini')


KilkennyCat   (2004-11-07 19:23:00) [8]


> Defunct ©   (07.11.04 19:22) [9]


но в ней действительно есть алгоритм :)


Defunct   (2004-11-07 19:22:00) [9]

> Опиши пожалуйста алгоритм действия этой строчкии куда ее приписывать...

LOL!


begin...end   (2004-11-07 19:21:00) [10]


> [5] InfMag ©   (07.11.04 19:17)


> и куда ее приписывать

Куда-нибудь до использования ini-файла... :-)


KilkennyCat   (2004-11-07 19:20:00) [11]

насколько я помню, парамстр(0) вернет путь с именем запустившегося екзешника. ChangeFileExt тогда вернет путь с именем этого же екзешника, но .exe поменяет на .ini


snake1977   (2004-11-07 19:19:00) [12]

почтай про ParamStr(0)
это и есть папка из которой была запущена твоя программа


InfMag   (2004-11-07 19:17:00) [13]

Хм. Тоесть путь будет определяться при запуске?
Опиши пожалуйста алгоритм действия этой строчки и куда ее приписывать...


KilkennyCat   (2004-11-07 19:07:00) [14]

укажи его программно, а не явно. Один из вариантов - snake1977 [2]


InfMag   (2004-11-07 19:04:00) [15]

Так, чето я запутался.
Вобщем, мне нужно, чтобы с INI можно было работать там, где лежит EXE'шник, но полный путь указать я не могу, поскольку в будущем возможно придется перемещать папку с EXE'шниками и INI'шками...


snake1977   (2004-11-07 19:02:00) [16]

просто в TINIFile.Create , укажи полный путь
например ChangeFileExt(ParamStr(0),'.ini')


KilkennyCat   (2004-11-07 19:01:00) [17]

в корневой, имеется ввиду папка, где лежит екзешник? возможно, примсутсвует русское наименование в пути...


Наверх

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