Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Вниз

Не читает 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.043 c
8-1126121632
karhu
2005-09-07 23:33
2006.02.19
обработка 3ds


2-1138877410
Паша_
2006-02-02 13:50
2006.02.19
Как узнать какие threads запущены?


15-1138348455
Курдль
2006-01-27 10:54
2006.02.19
Наследование в Visual Studio 2005 не работает?!


2-1138615502
Pit
2006-01-30 13:05
2006.02.19
Получение иконки из EXE


15-1138560208
Хинт
2006-01-29 21:43
2006.02.19
Я обижен на Yandex





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский