Форум: "Основная";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c