|
|
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
WIN7, Delphi 7 При выполнении программы нужно сохранить файл ini с некими настройками. Пишу так (путь к файлу не указываю): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Мне нужно, чтобы файл сохранялся в рабочей папке на клиенте, указанной в ярлыке exe-шника в поле "Рабочая папка". Все отрабатывает. В результате файл создается, только не там где мне нужно. Долго не мог его найти. Оказывается он сохраняется по пути C:\Users\Boss\AppData\Local, да и еще с аттрибутом "скрытый". В XP всегда все работало как мне нужно - если путь не указан сохраняется или в "Рабочей папке" ярлыка, или (если не указана рабочая папка) в каталоге с exe. Возможно ли в семерке такое сделать? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:22 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
vitku... (путь к файлу не указываю) ... Мне нужно, чтобы файл сохранялся в рабочей папке на клиенте, указанной в ярлыке exe-шника в поле "Рабочая папка"... Ну так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx ...и укажи ее явно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:32 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
Указывай полный путь к файлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:32 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
25.01.2018 17:32, чччД пишет: > Ну так узнай рабочую папку \Program Files\... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:34 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
rgreatУказывай полный путь к файлу. Ну так понятно, что это самый верный способ. Только не хочется в базе хранить еще и полные пути рабочих папок для каждого пользователя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:41 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
vitkurgreatУказывай полный путь к файлу. Ну так понятно, что это самый верный способ. Только не хочется в базе хранить еще и полные пути рабочих папок для каждого пользователя тогда страдай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:42 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
vitkurgreatУказывай полный путь к файлу. Ну так понятно, что это самый верный способ. Только не хочется в базе хранить еще и полные пути рабочих папок для каждого пользователя Ну так формируй этот путь сам, по одному принципу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:44 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx ...и укажи ее явно. Имеется ввиду не папку, из которой запущена программа, а рабочая папка, указанная в ярлыке (а там может быть указан абсолютно другой путь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:48 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
vitku, Он тебе на функцию для получения рабочей папки ссылку и дал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:49 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
vitkuчччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx ...и укажи ее явно. Имеется ввиду не папку, из которой запущена программа, а рабочая папка, указанная в ярлыке (а там может быть указан абсолютно другой путь)Вы проверили и убедились, что функция возвращает не то значение, что Вам нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:51 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx Будем надеяться, что у не открываются Open/SaveDialog ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:52 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
vitkuчччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx ...и укажи ее явно. Имеется ввиду не папку, из которой запущена программа, а рабочая папка, указанная в ярлыке (а там может быть указан абсолютно другой путь) GetCurrentDir ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 17:53 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
sql2012GetCurrentDir Угу, пальцем в небо это... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:09 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
DarkMastersql2012GetCurrentDir Угу, пальцем в небо это... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:10 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Вы проверили и убедились, что функция возвращает не то значение, что Вам нужно? Прошу прощения. Это то, что нужно. GetCurrentDir рулит. Спасибо. Вот я ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:15 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
sql2012, Программа может сменить кучу раз папку сама. При ее запуске папка может не менятся. И твой GetCurrentDir() вернет тебе совсем неожиданную папку. Поэтому наиболее правильным будет: 1) получение папки, откуда запустились - ExtractFilePath(Application.ExeName) 2) получение папок от Shell`a - GetSpecialFolderLocation() 3) всякие разные варианты по хранению папок в БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:17 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
DarkMaster...Программа может сменить кучу раз папку сама. При ее запуске папка может не менятся. И твой GetCurrentDir() вернет тебе совсем неожиданную папку... Пример - ...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:22 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччД, А что SetCurrentDir() уже отменили?-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:27 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
DarkMasterчччД, А что SetCurrentDir() уже отменили?-) DarkMaster...Программа может сменить кучу раз папку сама. При ее запуске папка может не менятся. И твой GetCurrentDir() вернет тебе совсем неожиданную папку... Пример получения "неожиданной папки", давай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:34 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччДПример получения "неожиданной папки", давай.Дык 21139443 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:36 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччД, Если мы запускаем программу не щелчком по ярлыку и т.п. а например из батника с указанием полного пути - мы благополучно останемся в том каталоге, где батник (если тот не делает CD ессно), и никак в папке программы не окажемся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:36 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
может в новой версии что-то изменили в диалогах, но вроде раньше (лет пять тому) я с диалогами имел развлечение из-за смены CurrentDir. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:37 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
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\Какой-то софт\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:38 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
rgreatчччДПример получения "неожиданной папки", давай.Дык 21139443 . Какие еще диалоги? "Пятница"? Еще раз читаем: >> чтобы файл сохранялся в рабочей папке на клиенте , указанной в ярлыке exe-шника в поле "Рабочая папка" . При старте приложения - запомнил рабочую папку ... или все дергать будут каждый раз GetCurrentDir? И писать под это код? еще и Set ... вспомнили... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:41 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
DarkMasterЕсли мы запускаем программу не щелчком по ярлыку и т.п. а например из батника с указанием полного пути - мы благополучно останемся в том каталоге, где батник (если тот не делает CD ессно), и никак в папке программы не окажемся. Ага, а еще может быть несколько ярлыков создать, с разными значениями рабочих папок. Тогда и щелчок не по тому ярлыку вызовет неожиданность. Как все неожиданно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:42 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччД, Мое дело предложить :) Хотите пользовать ярлыки - вперед. Обязательно найдется умелец, который запустить программу из окна cmd.exe. Неожиданно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:47 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
DarkMaster, "вас услышали" - (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:51 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
sql2012rgreatпропущено... Дык 21139443 . Какие еще диалоги? "Пятница"?Далоги могут менять текущий каталог программы. Внезапно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 18:54 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
rgreatsql2012пропущено... Какие еще диалоги? "Пятница"?Далоги могут менять текущий каталог программы. Внезапно. Что же мешает запомнить путь какой был путь в ярлыке при старте приложения, а не подстраиваться под то, что еще может поменяться в ходе работы приложения? Внезапно... сохранил что-то на флешку... Внезапно... выдернул флешку... Внезапно... программа решила что-то сохранить... в ini-файл... что там у нас теперь... какой путь? а какой ТС-у нужен путь? Текущий или тот, что прописан был в ярлыке... внезапно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 19:08 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
rgreatsql2012пропущено... Какие еще диалоги? "Пятница"?Далоги могут менять текущий каталог программы. Внезапно. "Диалоги" не меняют текущую рабочую директорию . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 19:15 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччД, Vcl.Dialogs.TOpenOptions ofNoChangeDir After the user clicks OK, resets the current directory to whatever it was before the file-selection dialog opened. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 19:36 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
sql2012При старте приложения - запомнил рабочую папку ...ТС вполне может его вызвать при самом сохранении rgreatofNoChangeDirКоторый, кажись, по умолчанию выключен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:03 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_rgreatofNoChangeDirКоторый, кажись, по умолчанию выключенИменно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:06 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
rgreatчччД, Vcl.Dialogs.TOpenOptions ofNoChangeDir After the user clicks OK, resets the current directory to whatever it was before the file-selection dialog opened. Ты уверен, что это та самая директория? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:08 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччДТы уверен, что это та самая директория?Не знаю что у тебя за "та самая" директория, но текущую директорию приложения оно меняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:10 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
vitkuМне нужно, чтобы файл сохранялся в рабочей папке на клиенте, указанной в ярлыке exe-шника в поле "Рабочая папка". Все отрабатывает. В результате файл создается, только не там где мне нужно. Долго не мог его найти. Оказывается он сохраняется по пути C:\Users\Boss\AppData\Local, да и еще с аттрибутом "скрытый". В XP всегда все работало как мне нужно - если путь не указан сохраняется или в "Рабочей папке" ярлыка, или (если не указана рабочая папка) в каталоге с exe. Возможно ли в семерке такое сделать? Спасибо. Похоже, у вас сработала "виртуализация файлов". Виста и семерка (наверное и дальше тоже, не знаю), могут записывать файлы не туда, куда вы думаете: http://www.oszone.net/8525/UAC Вот ещё про это, покороче . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:11 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
rgreatчччДТы уверен, что это та самая директория?Не знаю что у тебя за "та самая" директория, но текущую директорию приложения оно меняет. GetCurrentDirectory() - вернет другое значение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:22 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччД, Проверь, мне лень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:23 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
rgreatчччД, Проверь, мне лень. Ты из своей виртуальной реальности вещаешь - а мне проверять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:35 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_чччДНу так узнай рабочую папку: https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa364934(v=vs.85).aspx Будем надеяться, что у не открываются Open/SaveDialog Диалоги хранят "ластюзеддир" в другом месте, тут уж совсем сам себе буратино, если не понимает разницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 20:59 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
чччДТы из своей виртуальной реальности вещаешь - а мне проверять?Да мне пофигу во что ты там веришь. А с тем что диалоги меняют текущий каталог я сталкивался в своих проектах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 21:00 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
Правда это было еще во времена Delphi 3. Что там сейчас - хз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 21:06 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
rgreatчччДТы из своей виртуальной реальности вещаешь - а мне проверять?Да мне пофигу во что ты там веришь. А с тем что диалоги меняют текущий каталог я сталкивался в своих проектах. Всякое бывает. Мало ли, может, ты из этих, кто FMX пользуется. Тогда ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 21:06 |
|
||
|
Как сохранить файл ini
|
|||
|---|---|---|---|
|
#18+
В библиотеке JCL есть файл JCLSysInfo, там куча таких функций интересных, в том числе, например, GetAppdataFolder, которая вернет ссылку на \users\ТекущийПользователь\AppData\Roaming. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2018, 21:15 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041302]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
197ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 580ms |

| 0 / 0 |
