Главная страница
    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.47 MB
Время: 0.007 c
1-24856
Vlad
2002-12-27 21:07
2003.01.09
Как можно


1-24842
Masa
2002-12-26 14:02
2003.01.09
Как програмно удалить с формы лаблы, кнопки и т.д. ?


7-25102
-=Sergeante=-
2002-09-11 13:28
2003.01.09
Виртуальный диск


3-24788
Борис
2002-12-16 15:49
2003.01.09
UpdateSQL and NOT NULL


6-24993
Александр
2002-11-08 12:50
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский