Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
6-25001
brestmarket
2002-11-09 15:27
2003.01.09
Поиск текста в WebBrowser не работает ?!


1-24829
dRake
2002-12-27 11:59
2003.01.09
обнуление массива


3-24764
NetKnight
2002-12-11 02:12
2003.01.09
interbase db fix


1-24901
viper
2002-12-25 20:36
2003.01.09
ComboBox


14-25009
MegaVolt
2002-12-09 16:45
2003.01.09
---|Ветка была без названия|---





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский