Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.09;
Скачать: CL | DM;

Вниз

Help! Проблема с ini файлами.   Найти похожие ветки 

 
Torero   (2002-12-26 05:54) [0]

Написал я значит в своей проге такие строчки:
{var IllsIniFile:TIniFile;}
IllsIniFile:=TIniFile.Create("ills.ini");
IllCount:=IllsIniFile.ReadInteger("Ills","IllCount",-1);
if IllCount=-1 then
begin
Illcount:=1;
IllsIniFile.WriteInteger("Ills","IllCount",1);
end;
IllsIniFile.Free;
Компилирую... Access volation at address * in module "med.exe". Read of address *.
Глюк точно в этих строчках. Может переменную создал неправильно? Если с кодом все в порядке, может какие-нибудь директивы посоветуете. Что самое интересное, этот баг проявляется не только в delphi 7, но и в delphi 6.


 
Slym   (2002-12-26 06:39) [1]

ТЫ уверен что ills.ini существует? И он в папке проги или в
%windir%?
Скорее всего от не находит файла и не создает IllsIniFile
Попробуй загнать код в try fin, хоть от виолатиона избавит

{var IllsIniFile:TIniFile;}
IllsIniFile:=TIniFile.Create("ills.ini");
TRY
IllCount:=IllsIniFile.ReadInteger("Ills","IllCount",-1);
if IllCount=-1 then
begin
Illcount:=1;
IllsIniFile.WriteInteger("Ills","IllCount",1);
end;
FINALLY
IllsIniFile.Free;
end;


 
Calm ©   (2002-12-26 09:19) [2]

Если файла не существует, то
IllsIniFile:=TIniFile.Create("ills.ini");
создаст его. Ошибка не в этом.


 
Lady D ©   (2002-12-26 09:24) [3]

uses Registry;
var RegIni: TRegIniFile; для win32


 
Kent ©   (2002-12-26 09:49) [4]

Довольно часто юзаю ini файлы, т.к. очень уж они удобны для хранения вского рода наборов данных. Но речь не о том. TIniFile.Create("bla-bla.ini") не создает файл, а создает указатель на экземпляр объекта TIniFile. Я поначалу тоже натыкался на такую ерунду. Избавился от этой гадости может и коряво и по дедовски, но мне так больше всего нравится :) !

var F: File;
Ini: TIniFile;
begin
AssignFile(F,"bla-bla.ini");
{$I-} Reset(F); {$I+}
if IOResult<>0 then ReWrite(F);
CloseFile(F);
Ini:=TIniFile.Create("bla-bla.ini");
// Делаем тута чо-нить !!! Пишем , читаем и т.д. !
Ini.Free;
end;

Конечно в идеале надо бы проверить значение IOResult и плясать от него дальше, но этот пример для случая, когда файл отсутствует.

Удачи !


 
Anatoly Podgoretsky ©   (2002-12-26 09:54) [5]

Откуда у тебя такие сведенья :-)


 
ironwit ©   (2002-12-26 09:56) [6]

по умолчанию ini файл создается в вин директории, есть ли у тебя разрешение туда что0нить писать?
попробуй это
inifile:=tinifile.create(changefileext(application.exename,".ini");

создашь файл в директории программы
сообщи плс, ибо пишу теоретически, сам не пробовал :-)


 
Anatoly Podgoretsky ©   (2002-12-26 10:08) [7]

ironwit © (26.12.02 09:56)
И потчи наверняка получит отлуп, так как вероятность того, что ему ззапрещено туда писать близка к максимальной

На моем сайте в Чаво из фидо есть статья "Как хранить настройки", настоятельно рекомендуется ее прочитать, прежде чем работать с ини файлами на платформе НТ


 
ironwit ©   (2002-12-26 10:16) [8]

Anatoly Podgoretsky © (26.12.02 10:08)
ironwit © (26.12.02 09:56)
И потчи наверняка получит отлуп, так как вероятность того, что ему ззапрещено туда писать близка к максимальной

не понял. Куда ему запрещено писать - в системную директорию или в дир.программы?


 
Anatoly Podgoretsky ©   (2002-12-26 10:35) [9]

И туда и туда, как правило


 
ironwit ©   (2002-12-26 10:37) [10]

не понял, он же смог записать свою программу в какой-то каталог? почему он там не может еще записать один файл. Или я плохо знаю ХР?


 
Anatoly Podgoretsky ©   (2002-12-26 10:48) [11]

Право на инсталляцию программ принадлежит администратору.
Еще раз прочитай статью, а то чувствуется, что ты не представляешь работу системы безопасности и идеолгоию Win XP



Страницы: 1 вся ветка

Текущий архив: 2003.01.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
3-24794
Андрей1
2002-12-16 18:07
2003.01.09
как организовать ссылочную целостность между таблицами


1-24838
n/a.STealth
2002-12-25 15:15
2003.01.09
TNotifyEvent


1-24915
alvin
2002-12-24 07:28
2003.01.09
Skin


3-24818
XM-AD
2002-12-17 10:17
2003.01.09
Снова кодировки! Что не правильно?


1-24892
alxx
2002-12-25 17:07
2003.01.09
Курсы вылют