Чтение секций из INI

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Чтение секций из INI

Сообщение mirk »

Код: Выделить всё

...
INIFile: TINIFile;
Sections: TStrings; 
...
Sections := TStrings.Create;
INIFile := TINIFile.Create('my.ini');
INIFile.ReadSections(Sections); 
...

На последней строке получаю RunError(211).
С чем это может быть связано?
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 840
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

если во время работы - Выполни проверку на существование секции, перед чтением секции.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Во время работы.
Этот метод не требует название секции, он в Sections помещает список всех найденных секций в INI файле.
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

mirk, вместо абстрактного TStrings используйте TStringList.
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Почему? Объявление явно указывает что требуется

Код: Выделить всё

procedure ReadSections(Strings: TStrings); override;
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

mirk, ответ тут во фразе "An instance of TStrings is never created directly, instead a descendent class such as TStringList should be created. This is because TStrings is an abstract class which does not implement all methods; TStrings also doesn't store any strings, this is the functionality introduced in descendents such as TStringList. "
mirk
постоялец
Сообщения: 319
Зарегистрирован: 24.09.2007 10:03:39

Сообщение mirk »

Понятно, спасибо.
Ответить