![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка функции inifiles.readstring - как исправить [D6, Win95/98, Win2k]
Донской © (2004-09-21 02:18:00)Вечер добрый!!!
Представьте себе, пишу на d6 и запускаю ПО под win98. Оно выдает сообщение об ошибке Ошибка доступа к странице памяти в модуле krnl386.exe.
Стал выяснять. Оказалось, что программа вылетает на строке
чтения из ини файла!!!
При этом сам файл существует, не существует только секции, к которой обращается функция. Ведь в этом случае функция должна вернуть значение по-умолчанию, а она приводит к ошибке приложения почему-то...
Вот код.
MyInifile:=tinifile.create(filepathtmp);
showmessage('filepathtmp= '+filepathtmp);
try
with MyInifile do
begin
fMain.top:=readinteger('WindowSizes','Top',0);
showmessage('1');
fMain.left:=readinteger('WindowSizes','Left',0);
showmessage('2');
fMain.Height:=readinteger('WindowSizes','Height',400);
showmessage('3');
fMain.width:=readinteger('WindowSizes','Width',700);
showmessage('4');
DBPath:=readstring('DB','Path','...');
showmessage('5');
M3UDir:=readstring('Properties','M3UDir','...');
showmessage('6');
if m3udir='' then m3udir:='...';
showmessage('7');
if m3udir[length(m3udir)]<>'\' then
m3udir:=m3udir+'\';
showmessage('8');
LengthErrorMinus:=readinteger('Properties',
'LengthErrorMinus',0);
showmessage('9');
LengthErrorPlus:=readinteger('Properties',
'LengthErrorPlus',0);
showmessage('10');
end;
finally
freeandnil(MyInifile);
showmessage('11');
deletefile(filepathtmp);
showmessage('12');
end;
Я везеде понаставил showmessage для того, чтобы понять где она все-таки вылетает, другого способа не было. И оказалось, что вылетает она после показа сообщения "4" (выделено жирным).
Что делать???? Ума не приложу.
Работаю в d6 с update2.
ДОнской (2004-09-21 02:31:00) [1]Во блин.
ЗАменил слово Path на Path1 и все заработало.
Не знаю чем это объяснить.
Вроде ж это всего лишь имя ключа в секции ини файла.
Кто знает?