powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сохранить файл ini
25 сообщений из 45, страница 1 из 2
Как сохранить файл ini
    #39591133
vitku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WIN7, Delphi 7
При выполнении программы нужно сохранить файл ini с некими настройками.
Пишу так (путь к файлу не указываю):
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
mIni:= TIniFile.Create('MySettings.ini');
try
  mIni.WriteString('Author','ServerName','MyServerName');
  mIni.WriteString('Author','DBName','MyDBName');
  mIni.WriteString('Author','Login','MyLogin');
finally
  FreeAndNil(mIni);
end;


Мне нужно, чтобы файл сохранялся в рабочей папке на клиенте, указанной в ярлыке exe-шника в поле "Рабочая папка". Все отрабатывает. В результате файл создается, только не там где мне нужно. Долго не мог его найти. Оказывается он сохраняется по пути C:\Users\Boss\AppData\Local, да и еще с аттрибутом "скрытый". В XP всегда все работало как мне нужно - если путь не указан сохраняется или в "Рабочей папке" ярлыка, или (если не указана рабочая папка) в каталоге с exe.
Возможно ли в семерке такое сделать? Спасибо.
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591143
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitku...
(путь к файлу не указываю)
...
Мне нужно, чтобы файл сохранялся в рабочей папке на клиенте, указанной в ярлыке exe-шника в поле "Рабочая папка"...
Ну так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx
...и укажи ее явно.
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591144
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Указывай полный путь к файлу.
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591146
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.01.2018 17:32, чччД пишет:
> Ну так узнай рабочую папку

\Program Files\...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591151
vitku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreatУказывай полный путь к файлу.
Ну так понятно, что это самый верный способ. Только не хочется в базе хранить еще и полные пути рабочих папок для каждого пользователя
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591154
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkurgreatУказывай полный путь к файлу.
Ну так понятно, что это самый верный способ. Только не хочется в базе хранить еще и полные пути рабочих папок для каждого пользователя

тогда страдай
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591155
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkurgreatУказывай полный путь к файлу.
Ну так понятно, что это самый верный способ. Только не хочется в базе хранить еще и полные пути рабочих папок для каждого пользователя
Ну так формируй этот путь сам, по одному принципу.
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591156
vitku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx
...и укажи ее явно.
Имеется ввиду не папку, из которой запущена программа, а рабочая папка, указанная в ярлыке (а там может быть указан абсолютно другой путь)
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591158
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitku,

Он тебе на функцию для получения рабочей папки ссылку и дал.
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591160
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkuчччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx
...и укажи ее явно.
Имеется ввиду не папку, из которой запущена программа, а рабочая папка, указанная в ярлыке (а там может быть указан абсолютно другой путь)Вы проверили и убедились, что функция возвращает не то значение, что Вам нужно?
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591161
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx Будем надеяться, что у не открываются Open/SaveDialog
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591162
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkuчччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx
...и укажи ее явно.
Имеется ввиду не папку, из которой запущена программа, а рабочая папка, указанная в ярлыке (а там может быть указан абсолютно другой путь)


GetCurrentDir
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591173
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012GetCurrentDir

Угу, пальцем в небо это...
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591174
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMastersql2012GetCurrentDir

Угу, пальцем в небо это...

?
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591179
vitku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_Вы проверили и убедились, что функция возвращает не то значение, что Вам нужно?
Прошу прощения. Это то, что нужно. GetCurrentDir рулит. Спасибо. Вот я ...
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591182
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql2012,

Программа может сменить кучу раз папку сама. При ее запуске папка может не менятся. И твой GetCurrentDir() вернет тебе совсем неожиданную папку. Поэтому наиболее правильным будет:
1) получение папки, откуда запустились - ExtractFilePath(Application.ExeName)
2) получение папок от Shell`a - GetSpecialFolderLocation()
3) всякие разные варианты по хранению папок в БД
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591185
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster...Программа может сменить кучу раз папку сама. При ее запуске папка может не менятся. И твой GetCurrentDir() вернет тебе совсем неожиданную папку...
Пример - ...?
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591190
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

А что SetCurrentDir() уже отменили?-)
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591200
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterчччД,

А что SetCurrentDir() уже отменили?-)
DarkMaster...Программа может сменить кучу раз папку сама. При ее запуске папка может не менятся. И твой GetCurrentDir() вернет тебе совсем неожиданную папку...

Пример получения "неожиданной папки", давай.
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591203
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДПример получения "неожиданной папки", давай.Дык 21139443 .
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591204
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД,

Если мы запускаем программу не щелчком по ярлыку и т.п. а например из батника с указанием полного пути - мы благополучно останемся в том каталоге, где батник (если тот не делает CD ессно), и никак в папке программы не окажемся.
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591205
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может в новой версии что-то изменили в диалогах, но вроде раньше (лет пять тому) я с диалогами имел развлечение из-за смены CurrentDir.
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591206
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMastersql2012,

Программа может сменить кучу раз папку сама. При ее запуске папка может не менятся. И твой GetCurrentDir() вернет тебе совсем неожиданную папку. Поэтому наиболее правильным будет:
1) получение папки, откуда запустились - ExtractFilePath(Application.ExeName)
2) получение папок от Shell`a - GetSpecialFolderLocation()
3) всякие разные варианты по хранению папок в БД



1. GetCurrentDir не мой
2. Читал вообще ТЗ?
>чтобы файл сохранялся в рабочей папке на клиенте, указанной в ярлыке exe-шника в поле "Рабочая папка"

Пример:
Запуск из C:\Program Files\Какой-то софт\программа.exe
Рабочая папка в ярлыке: d:\work\

GetCurrentDir - выдает d:\work\ что и требуется. Как быть с полученной информацией - дело рук кому она нужна.

Ага ...а твой ExtractFilePath(Application.ExeName) выдаст C:\Program Files\Какой-то софт\
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591210
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatчччДПример получения "неожиданной папки", давай.Дык 21139443 .

Какие еще диалоги? "Пятница"?


Еще раз читаем:
>> чтобы файл сохранялся в рабочей папке на клиенте , указанной в ярлыке exe-шника в поле "Рабочая папка" .

При старте приложения - запомнил рабочую папку ...

или все дергать будут каждый раз GetCurrentDir? И писать под это код?

еще и Set ... вспомнили...
...
Рейтинг: 0 / 0
Как сохранить файл ini
    #39591211
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterЕсли мы запускаем программу не щелчком по ярлыку и т.п. а например из батника с указанием полного пути - мы благополучно останемся в том каталоге, где батник (если тот не делает CD ессно), и никак в папке программы не окажемся.

Ага, а еще может быть несколько ярлыков создать, с разными значениями рабочих папок. Тогда и щелчок не по тому ярлыку вызовет неожиданность.

Как все неожиданно.
...
Рейтинг: 0 / 0
25 сообщений из 45, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сохранить файл ini
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]