从文件读取并将值存储为数组数组

时间:2018-10-21 12:19:46

标签: c++ arrays file matrix wxstring

我正在开发一个程序,它将一些excel数据解释为对我更有用的东西。但是我真的不知道该如何进行下去。

我有一个带有excel矩阵的csv文件,其中存储了一些数据。看起来像这样:

;1;1;1;1;1;1;1;
;1;0;A;0;1;0;0;
;1;0;1;0;1;0;1;
;1;0;1;0;1;0;1;
;1;0;1;0;1;0;1;
;0;0;1;0;B;0;1;
;1;1;1;1;1;1;1;

我想读取这些数据并通过wxWidgets以以下格式显示它们:

1111111
1000100
1010101
1010101
1010101
0010001
1111111
A: 3, 2
B: 5, 6

这是我使用wxWidgets库为此使用的实际代码:

void WxWFrame::OnToggleButton1Toggle(wxCommandEvent& event)
{
    TextCtrl1->SetValue("");
    wxString        file;
    wxFileDialog    fdlog(this, _("Open CSV file"), "", "",
                       "CSV (*.csv)|*.csv", wxFD_OPEN|wxFD_FILE_MUST_EXIST);

    if(fdlog.ShowModal() != wxID_OK) return;
    file.Clear();
    file = fdlog.GetPath();

    wxString str;
    wxTextFile tfile;

    tfile.Open(file);
    str = tfile.GetFirstLine();

    while(!tfile.Eof())
    {
        str.Replace(wxT("X"), wxT("0"));
        str.Replace(wxT("Y"), wxT("0"));
        str.Replace(wxT(";"),wxT(""));
        TextCtrl1->WriteText("\r\n");
        TextCtrl1->WriteText(str);
        str = tfile.GetNextLine();
    }

    tfile.Close();
}

这用于查看不带分号的矩阵,并且将X和Y替换为零。但是我无法弄清楚如何确定A和B的x和y坐标。我认为创建实际的数据矩阵可能很有用-然后通过GetFirst / NextLine从文件中读取行并将其加载到该矩阵。之后,使用计数器和循环从矩阵中获取这些x和y坐标应该相当容易。但是问题在于,无论我做什么,我都无法将存储在str变量中的文件的行拆分为较小的块,并用分号进行拆分,然后将它们一一加载到矩阵中。

因此,如果有人可以帮助我,我将非常感激。我该如何使用该wxString,在找到分号后将其分解为数组-然后将其附加到数组数组中?

0 个答案:

没有答案