Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2012, 13:17   #1
AlexPv
 
Регистрация: 26.05.2012
Сообщений: 3
По умолчанию Программа не видит ini-файл

Доброго времени суток!
Написал программу на Delphi, в тексте программы считываются некоторые параметры из ini-файла
Код:
// Чтение амплитуды входного сигнала
 if ConfigIni.ValueExists('Generator', 'Ain') = False then
 begin
  MessageDlg('Ключ "Ain" в секции "Generator" не найден!', mtError, [mbOK], 0);
 end
 else
 begin
  // Установка амплитуды входного сигнала
  Ain := ConfigIni.ReadFloat('Generator', 'Ain', Ain);
  // Индицируем в милливольтах
  Label9.Caption := FloatToStr(Ain * 1000);
  end;
Всё работает, но проблема в том, что мне эту программу надо запускать под WinXP у который отключен explorer.exe
Я сделал следующее:
local machine\software\microsoft\windows nt\current version\winlogon параметр Shell = MyProg.exe
Программа запускается и сразу выдаёт сообщения, что не может найти ключи в ini-файле, т.е. его не видит.
Почему так происходит подскажите пожалуйста.
AlexPv вне форума Ответить с цитированием
Старый 26.05.2012, 13:33   #2
Berlioz
Изучающий C и ASM
Пользователь
 
Регистрация: 25.05.2012
Сообщений: 89
По умолчанию

Гугл и Win32API тебе в помощь. Я в свое время это делал. Все находил в гугле.
Подсказать подробнее тебе не смогу - сырцы сгорели вместе с винтом
Berlioz вне форума Ответить с цитированием
Старый 26.05.2012, 13:53   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Для программы нужно указать не только расположение ее самой, но и ее рабочий каталог.
Ну, либо программу устанавливать в жестко предопределенном месте и жестко прописывать в ней полный путь к ini-файлу.
s-andriano вне форума Ответить с цитированием
Старый 26.05.2012, 14:03   #4
AlexPv
 
Регистрация: 26.05.2012
Сообщений: 3
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Для программы нужно указать не только расположение ее самой, но и ее рабочий каталог.
Ну, либо программу устанавливать в жестко предопределенном месте и жестко прописывать в ней полный путь к ini-файлу.
В реестре пробовал в параметр shell писать полный путь - не помогло.
Сейчас в программе сделано так:
ConfigIni := TIniFile.Create(dir + '\Config.ini');
Попробую жёстко прописать путь, т.к. перемещение файлов программы не нужно:
ConfigIni := TIniFile.Create('C:\My\Config.ini') ;
AlexPv вне форума Ответить с цитированием
Старый 01.06.2012, 12:01   #5
AlexPv
 
Регистрация: 26.05.2012
Сообщений: 3
По умолчанию Разобрался

Всё теперь работает, сделал так:
Код:
...бла...бла...
var
 ConfigIni: TIniFile;

begin

 ConfigIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\Config.ini');

 // Чтение минимального значения коэффициента усиления П-регулятора
 if ConfigIni.ValueExists('Loop', 'Ko_min') = False then
 begin
  MessageDlg('Ключ "Ko_min" в секции "Loop" не найден!', mtError, [mbOK], 0);
 end
 else
 begin
  Ko_min := ConfigIni.ReadInteger('Loop', 'Ko_min', Ko_min);
  // Начальная предустановка коэффициента усиления П-регулятора
  Ko := Ko_min;
  // Индицируем
  Label24.Caption := IntToStr(Ko_min);
 end;
...бла...бла...
AlexPv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После копирования программа не видит файл. Delphi BeLuY Помощь студентам 9 09.10.2011 15:43
убунта не видит файл ? ololo-schoolboy Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 4 20.03.2011 13:23
С++: программа не видит терминатор инструкции((( Blondy Помощь студентам 3 25.02.2011 17:38
компилятор не видит заголовочный файл demcy Общие вопросы C/C++ 5 24.08.2010 16:18
INI файл! Stranger333 Помощь студентам 5 14.03.2010 19:07