I have a loop which reads value and inserts them into a std::vector
of structs.
Here's my code:
vector<PTNvalues> PTNdata;
PTNvalues pt;
struct PTNvalues
{
string LowRangesValue_[15];
//string LLowRangesValue_[15];
string HighRangesValue_[15];
string Service[15];
int version;
char key;
string Desc;
int Ranges;
bool AllowAlphas;
};
for (size_t i = 0; i < 35; i++)
{
//PTNdata.push_back(PTNvalues());
if (i < 10)
{
FD = '0' + i;
//FD = to_string(i);
}
else
{
FD = char(55 + i);
}
pt.key = FD;
tempstr = MessageApp::App.Ini.ReadString(to_string(FD), "AllowAlphas", "N");
ToUppercase(tempstr);
if (tempstr == "T" || tempstr == "Y")
{
pt.AllowAlphas = true;
}
else
{
pt.AllowAlphas = false;
}
pt.Ranges = MessageApp::App.Ini.ReadInt(to_string(FD), "Ranges", 0);
for (size_t t = 1; t <= pt.Ranges; t++)
{
pt.LowRangesValue_[t] = MessageApp::App.Ini.ReadString(to_string(FD), "LowRanges__" + to_string(t), "");
pt.HighRangesValue_[t] = MessageApp::App.Ini.ReadString(to_string(FD), "HighRanges_" + to_string(t), "");
pt.Service[t] = MessageApp::App.Ini.ReadString(to_string(FD), "Service____" + to_string(t), "");
pt.Desc = MessageApp::App.Ini.ReadString(to_string(FD), "Desc_______" + to_string(t), "");
}
PTNdata.push_back(pt);
}
But when I read value from that vector
I am not getting proper value.
Here's how I read values:
size_t ParseScanData2::keyToIdx(char k)
{
if (k >= '0' and k <= '9') return k - '0';
if (k >= 'A' and k <= 'Z') return k - 'A' + 10;
throw runtime_error("invalid key");
}
string AA = PTNdata[keyToIdx('H')].LowRangesValue_[10];
string BB = PTNdata[keyToIdx('H')].HighRangesValue_[10];
Above my file has only 3 values for Low
and High
for 'H'. But I am getting different values for string AA
and BB
above which should be empty. Am I missing something?
Aucun commentaire:
Enregistrer un commentaire