У меня есть этот фрагмент кода, который отказывается возвращать «DefaultVal», когда «CurrentFile» пуст:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TIniFile *pIni = new TIniFile("c:\\Test\\MyIni.ini");
try
{
int i = pIni->ReadInteger (L"x", L"Level", 0); //This is ok
UnicodeString s = pIni->ReadString ("x", "CurrentFile", "DefaultVal"); //Debugger shows s = NULL
}
__finally
{
pIni->Free();
}
}
//---------------------------------------------------------------------------
Это INI-файл:
[x]
CurrentFile=
Если я редактирую файл INI на CurrentFile= "something"
, тогда код работает, и s правильно содержит «что-то».
Что я делаю не так?
С++ Builder Токио 10.3.2
{ NULL }
, то есть на структуру с NULL в качестве единственного элемента. Насколько я знаю, в C++Builder эти строки являются структурами или классами, а в Delphi — встроенными типами. Структуры или классы C++Builder имитируют эти встроенные типы. - person Rudy Velthuis   schedule 01.10.2018(Ansi|Wide|Unicode)String
— это классы с одним членомData
, то есть NULL, когда строка пуста. - person Remy Lebeau   schedule 02.10.2018