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

Вниз

проблема в с записью в ini в ХР   Найти похожие ветки 

 
TankMan ©   (2003-02-07 21:17) [0]

Люди не пойму... в чем прикол... вобщем в ХР, создаю объект типа inifile-a он вроде как бы создается... проверяю его даже на nil, потом пытаюсь записать writestring-ом название одно... так он говорит Violation access :( не пойму в чем прикол...


 
Palladin ©   (2003-02-07 21:20) [1]

магическая 17тая строка... ищи ошибку там...


 
Ich Hasse ©   (2003-02-07 22:46) [2]

Ini:= TIniFile.Create("C:\hello.ini");

Ini.Free;

Проверенно работает и в XP


 
TankMan ©   (2003-02-08 13:04) [3]

Что за 17ая строка? где чего искать?

>>Ich Hasse
именно этим способом я и создаю ини... а вот при записи он выдает ошибку :(

clientini:=Tinifile.Create(Extractfilepath(application.exename)+configini);
if clientini<>nil then begin
clientini.ReadSection("Tabs",S);
for i:=0 to S.Count-1 do
clientini.EraseSection(S[i]);
clientini.EraseSection("Tabs");
S.Clear;
for i:=0 to TabsName.Count-1 do begin
clientini.WriteString("Tabs",TabsName[i].TabName,"");
if TabsName[i].GameName.Count>0 then begin
for j:=0 to TabsName[i].GameName.Count-1 do
clientini.WriteString(TabsName[i].TabName,TabsName[i].GameName[j],TabsName[i].GamePath[j]+","+TabsName[i].GameIconIndex[j]);
end
else
begin
if not clientini.SectionExists(TabsName[i].TabName) then
clientini.WriteString(TabsName[i].TabName,"",""); <<===Вобщем сдесь и вылетает ошибка...
end;
end;
bapply:=false;
btnApply.Enabled:=false;
frmMain.CreatePCGames(TabsName,frmMain.PCGames,self);
end;
end;
Коментарии вобщем сдесь излишни.. много прийдется описывать... но в общем структура использования ini тут ясна ИМХО...


 
Palladin ©   (2003-02-08 13:14) [4]

вообще то кода от тебя в начале и трабовали
невозможно с ходу так сказать.
1. почему ты думаешь что если обхект TIniFile не создастся, то clientini будет Nil? ведь ты его перед созданием в nil не выставляешь.

2. почему ты решил что дело именно в WriteString? дело скорее всего в обращении к записываемым данным.


 
Романов Р.В. ©   (2003-02-08 13:20) [5]


> clientini.WriteString(TabsName[i].TabName, "","");

Очень подозрительные параметры


 
Anatoly Podgoretsky ©   (2003-02-08 13:44) [6]

TankMan © (08.02.03 13:04)
И где защита от ошибок, и где информация о S, TabsName - что такое, создано ли

"Коментарии вобщем сдесь излишни" :-) вообще то да.


 
Builder   (2003-02-08 22:44) [7]

А в ХР с ини файлами еще есть проблема в том, что каталог должен был бы быть открыт для записи, чего не всегда бывает :(
(типичный пример - ини в каталоге программы, он в Program Files, программа установлена под админом, а пользуеться обграниченный пользователь)
Так что лучше как рекомендует М$ - в реестр.


 
TankMan ©   (2003-02-08 23:20) [8]

>>Palladin
1.Ну не знаю откуда я это взял... просто когда определяется тип данных какой-то переменной, и эта переменная никак не определена, то это значит, что она ссылается на nil. а если что-то всетаки ей присвоили... то значит ошибки небыло... хотя... я не уверен...вовсяком случае.. данный код работает в 98 без проблем...
2. Ну я не говорил, что ошибка именно в WriteString, я имею ввиду, что возникают проблемы при использовании его, т.е. записиси в ини...

>>Романов Р.В.
Да нормальные параметры... просто мне нужно создать запись в ини...в TabsName[i].TabName храниться название закладки одной... и мне нужно только ее название без каких либо параметров.. вовсяком случае на данном этапе разработки...

>>Anatoly Podgoretsky
А можно по конкретнее.. какую именно защиту вы советуете мне тут устроить? S и TabsName насколько я помню... модифицированные мной (чуть-чуть модифицированные) TStringlist... вот..

>>Builder
А как его открывать? Вовсяком случае я захожу в винды под root и никаких обычных пользователей...
А на счет реестра... это не для меня... мне потом эти ини шифровать... а в реестре хранить не надежно...


 
Романов Р.В. ©   (2003-02-08 23:43) [9]


> Да нормальные параметры

В том то и дело что не нормальные имя секции и ключа не должно быть пустым. Отсюда и ошибка.



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
1-52844
BOA_KAA
2003-02-07 15:44
2003.02.17
Почта


1-53116
lamer007
2003-02-07 10:52
2003.02.17
Есть ли в Delfi тип типа TStringList, но для хранения integer


7-53296
DeepProg
2002-12-15 15:30
2003.02.17
Связь с системой и приложениями


1-52888
shodan
2003-02-08 02:05
2003.02.17
RichEdit


6-53153
Toxa
2002-12-26 20:11
2003.02.17
TWebBrowser&JavaScript