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

Вниз

Не читает ini-файлы!   Найти похожие ветки 

 
Bogdan1024 ©   (2006-02-02 23:42) [0]

Есть файл с контентом:
[Menu]
HitpointsX = 1451
HitpointsY=6751
ExpoX=1451
ExpoY=7051
DefX=1451
DefY=7361
Att1MX=2519
Att1MY=6751
Att2MX=2591
Att2MY=7051
AttRAX=2591
AttRAY=7361
AmmoX=5161
AmmoY=6751
VisX=5161
VisY=7051
MessX=5541
MessY=7361

Я пытаюсь прочесть его вот так:
procedure ReadGameIni;
var Ini:TIniFile;
begin
Ini := TIniFile.Create("game.ini");
//Menu
HitpointsX := Ini.ReadInteger("Menu","HitpointsX",145);
HitpointsY := Ini.ReadInteger("Menu","HitpointsY",675  );
ExpoX := Ini.ReadInteger("Menu","ExpoX",145         );
ExpoY := Ini.ReadInteger("Menu","ExpoY",705           );
DefX := Ini.ReadInteger("Menu","DefX",145              );
DefY := Ini.ReadInteger("Menu","DefY",736                );
Att1MX := Ini.ReadInteger("Menu","Att1MX",259                );
Att1MY := Ini.ReadInteger("Menu","Att1MY",675                  );
Att2MX := Ini.ReadInteger("Menu","Att2MX",259                    );
Att2MY := Ini.ReadInteger("Menu","Att2MY",705                      );
AttRAX := Ini.ReadInteger("Menu","AttRAX",259                        );
AttRAY := Ini.ReadInteger("Menu","AttRAY",736                          );
AmmoX := Ini.ReadInteger("Menu","AmmoX",516                             );
AmmoY := Ini.ReadInteger("Menu","AmmoY",675                               );
VisX := Ini.ReadInteger("Menu","VisX",516                                  );
VisY := Ini.ReadInteger("Menu","VisY",705                                    );
MessX := Ini.ReadInteger("Menu","MessX",554                                     );
MessY := Ini.ReadInteger("Menu","MessY",736                                      );
Ini.Free;
end;
Но он не читает те значения, которые в файле, а берёт дефалтовые! Почему?!? Все переменные типа смол инт.


 
Eraser ©   (2006-02-02 23:48) [1]


> Bogdan1024 ©   (02.02.06 23:42)


> Ini := TIniFile.Create("game.ini");

Если файл находится в каталоге программы используй след. конструкцию:
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + "game.ini");


 
Fay ©   (2006-02-02 23:48) [2]

Указывай полный путь к файлу.


 
Gero ©   (2006-02-02 23:57) [3]

Где находится файл "game.ini"?


 
Gero ©   (2006-02-02 23:58) [4]

Сорри, я опоздал.


 
Bogdan1024 ©   (2006-02-03 00:11) [5]

Спасибо, теперь работает.
А почему так? Ведь если задаёшь относительный путь, то он его тоже открывает, ну, ошибки не выдаёт.


 
Eraser ©   (2006-02-03 00:20) [6]


> Bogdan1024 ©   (03.02.06 00:11) [5]

так и должно быть. Файл создастся (если вызван хоть один WriteX) в текущем каталоге, который далеко не всегда каталог, где находится exe программы.


 
Плохиш ©   (2006-02-03 00:39) [7]


> Eraser ©   (03.02.06 00:20) [6]
>
> > Bogdan1024 ©   (03.02.06 00:11) [5]
>
> так и должно быть. Файл создастся (если вызван хоть один
> WriteX) в текущем каталоге

Не надо обманывать, для TIniFile файл ищется в каталоге вындовс.


 
Eraser ©   (2006-02-03 01:33) [8]


> Плохиш ©   (03.02.06 00:39) [7]


> Не надо обманывать, для TIniFile файл ищется в каталоге
> вындовс.

Угу... я ошибся.
> Bogdan1024 ©

однако это сути дела не меняет... везде, по-возможности, в подобных ситуациях, старайся указывать абсолютный путь.



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

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

Наверх




Память: 0.49 MB
Время: 0.031 c
2-1138478666
Николай_
2006-01-28 23:04
2006.02.19
Подскажите пожалуйста,как наиболее эффективно реализовать поиск


15-1138543085
kaZaNoVa
2006-01-29 16:58
2006.02.19
Разочарование в онлайн-играх ...


3-1134919989
Express
2005-12-18 18:33
2006.02.19
Обязательное поле....


3-1135456112
Fed
2005-12-24 23:28
2006.02.19
Вычисляемое поле


6-1129584213
Lord_of_Darkness
2005-10-18 01:23
2006.02.19
Рдновременный прием TServerSocket ом файлов от нескольких клиенто