![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с реестром. [D7, WinXP]
Ангела © (2006-09-29 16:17:00)Необходимо прочитать значение из реестра.
Необходимый параметр File0
Software
Proramms
Programm1
Setting
File0
Все работает нормально, пока в ключе "Programm1" нет тире.
Если написать "Pro-gramm1" (а так оно и есть в реестре), то прочитать не удается
вот код
procedure TForm1.Button1Click(Sender: TObject);
var
FIniFile:TRegIniFile;
b:bool;
begin
Label3.Caption:= 'Error';
FIniFile:= TRegIniFile.Create('Software');
b:=FIniFile.OpenKey('Proramms\Pro-gramm1',false);
if b then Label3.Caption:= 'Прочитано';
Label1.Caption:= FINIFile.ReadString('Setting','File0','00000');
end;
То есть не получается получить данные, если в ключе есть тире. Как это обойти?
Ангела (2006-09-29 16:55:00) [1]поняла ошибку.
по умолчанию открывается раздел Current_user
А у меня все лежит в Local_machine
Спасибо!
Elen (2006-09-29 16:44:00) [2]
> stone
И существует ли в CURRENT_USER?
stone (2006-09-29 16:41:00) [3]
> b:=FIniFile.OpenKey('Proramms\Pro-gramm1',false);
Ключ будет открыт, если существует. А он у тебя точно существует?
Ангела (2006-09-29 16:40:00) [4]чертовщина какая-то. а у меня не читает
создала и Test и Op-tions
procedure TForm1.Button1Click(Sender: TObject);
var
F: TRegIniFile;
begin
F := TRegIniFile.Create('SOFTWARE');
try
if F.OpenKey('Test\Op-tions', false) then
ShowMessage(F.ReadString('Options', 'Test', ''));
finally
F.Free;
end;
end;
месседжа не показывает...
Dmitrij_K (2006-09-29 16:40:00) [5]В ошибке что пишет?
ShowMessage(SysErrorMessage(GetLastError()));
Игорь Шевченко (2006-09-29 16:31:00) [6]
> То есть не получается получить данные, если в ключе есть
> тире. Как это обойти?
Странно. Получается.
HKEY_CURRENT_USER\Software\Test\Op-tions\Options
строковый параметр Test со значением notest
procedure TForm1.Button1Click(Sender: TObject);
var
F: TRegIniFile;
begin
F := TRegIniFile.Create('SOFTWARE');
try
if F.OpenKey('Test\Op-tions', false) then
ShowMessage(F.ReadString('Options', 'Test', ''));
finally
F.Free;
end;
end;
Elen (2006-09-29 16:28:00) [7]
> Ангела
У меня все читается :-| хоть с тире хоть без (соответствуя в регистре). Почему такие выводы? строка в реестре случайно #0 не содержит?