Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > проблема с *.ini


Автор: artsb 22.11.2007, 01:37
Подскажите в чём ошибка:

TIniFile *fl;
int a=0;
fl=new TIniFile(ChangeFileExt("nastr",".ini"));
if(fl!=NULL)
        {
        a=fl->ReadInteger("gen","lng",a);
        lng=a;
        }
else
        {
        fl->WriteInteger("gen","lng",1);
        lng=1;
        }
delete fl;

Почему не считывает значение? Уже по-всякому пробовал.

Автор: Fazil6 22.11.2007, 02:29
а зачем ты вот это делашь?
Код

ChangeFileExt("nastr",".ini")


Автор: artsb 22.11.2007, 10:01
Fazil6 так в книге написано.

Расскажите как правильно создавать ini файлы, проверять существует ли уже файл с таким именем, как записывать и считывать данные.

Автор: artsb 22.11.2007, 11:17
Как записывать и считывать разобрался. 
А вот как проверить существует ли файл с таким именем. Если да, то считать параметры. Если нет, создать файл, и записать туда настройки по-умолчанию. 
Как создать файл в текущей директории. Если просто пишу имя файла он создаётся непонятно где. Если пишу полный путь то всё нормально. Может можно как-то определить путь к экзешнику, потом + имя ini файла.



ЗЫ мы прошли!!! smile

Добавлено через 10 минут и 7 секунд
Как получить текущую директорию разобрался:
Код

TIniFile *fl=new TIniFile(GetCurrentDir()+"/nastr.ini");


Осталось узнать как проверить наличие файла.

Автор: Fazil6 22.11.2007, 11:48
Цитата

Unit

SysUtils

Category

file management routines

extern PACKAGE bool __fastcall FileExists(const AnsiString FileName);


Добавлено через 3 минуты и 30 секунд
Цитата(artsb @  22.11.2007,  11:17 Найти цитируемый пост)
как-то определить путь к экзешнику, потом + имя ini файла.

путь к ехешнику и текущий каталог в общем случае не одно и тоже.
Каталог ехешника
Код

AnsiString exeFilePath = ExtractFilePath(Application->ExeName);


Автор: artsb 22.11.2007, 16:55
Fazil6 на счёт пути понял. А вот по поводу существования файла нет. :( Объясни по-подробнее плиз. И примерчик, если можно.

Автор: Fazil6 22.11.2007, 17:03
Цитата(artsb @  22.11.2007,  16:55 Найти цитируемый пост)
А вот по поводу существования файла нет. :( Объясни по-подробнее плиз. И примерчик, если можно.

что непонятно?
Не знаешь как функцию вызвать?
Код

if(FileExists("C:\\TEST.TXT"))
{
     ShowMessage("file exist");
}

Автор: artsb 22.11.2007, 21:55
Цитата(Fazil6 @  22.11.2007,  17:03 Найти цитируемый пост)
что непонятно?


Всё понятно. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)