0

我正在尝试读取值列表框中的 ini 文件。下面的例子有效,但我不知道为什么。

ReadSectionValues包含 ini 行的字符串列表。Rad Studio 如何解析这些行:

ListValues->Names[i]是第一部分,ListValues->Values[ListValues->Names[i]]是第二部分?

int i;
try

{

    //ShowMessage( ListBox1->Items->Strings[ListBox1->ItemIndex] );

    TStringList *ListValues = new TStringList;

    TIniFile* SettingsFile = new TIniFile(ExtractFilePath(Application->ExeName) + "settings.ini");

    String s;

    s = ListBox1->Items->Strings[ListBox1->ItemIndex];

    SettingsFile->ReadSectionValues( s , ListValues);

    for (i = 0; i < (ListValues->Count); i++) {

        //ShowMessage(ListValues->Names[i]);

        //ShowMessage(ListValues->Values[ListValues->Names[i]]);

        vList1->InsertRow(ListValues->Names[i] , ListValues->Values[ListValues->Names[i]],True);

    }

    delete SettingsFile;

    delete ListValues;

}

catch(Exception* e)
{
    ShowMessage(e->Message);
}

请解释一下,Rad stuido 帮助找不到解释。

4

1 回答 1

1
void __fastcall ReadSectionValues(
  const System::UnicodeString Section, 
  System::Classes::TStrings* Strings
)

是一种方法,它获取具有名称的所有 ini-file 部分行Section并将它们存储在 TStrings-objectStrings中。请注意,这些字符串具有格式name=value

TStrings 类有两个访问属性NamesValues。他们的解析算法非常简单。如果您得到stringsObject->Values[1]它,则从第二行开始stringsObject并将其拆分为两个字符串=(或其他NameValueSeparator属性值stringsObject)。(separator)左侧的字符串=作为名称(按属性Name)返回,而右侧的字符串=作为值(按属性Value)返回。

于 2013-10-24T09:40:42.053 回答