Чтение из файла и сохранение значений в виде массива массивов - PullRequest
0 голосов
/ 21 октября 2018

Я работаю над программой, которая будет интерпретировать некоторые данные Excel в более полезные для меня данные.Но я действительно не знаю, как двигаться дальше.

У меня есть CSV-файл с матрицей из Excel, где хранятся некоторые данные.Это выглядит так:

;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 нулями.Но я не могу понять, как определить координаты x и y для A и B. Я подумал, что было бы полезно создать реальную матрицу данных, а затем прочитать строки из файла через GetFirst / NextLine и загрузить их вэта матрица.После этого должно быть довольно легко получить эти координаты x и y из матрицы, используя счетчики и для циклов.Но проблема в том, что независимо от того, что я делаю, я не могу разделить строки из файла, хранящегося в переменной str, на более мелкие куски, разделенные точкой с запятой и загрузить их один за другим в матрицу.

Так что я был бы очень благодарен, если кто-нибудь может мне помочь с этим.Как я могу взять этот wxString, разбить его на массив после нахождения точки с запятой и затем добавить его в массив массивов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...