vpeguda Ответов: 1

Как прочитать данные. csv в диалоговом окне во время выполнения в C++


Данные не могут быть отображены в элементе управления редактированием, когда мы выполняем диалоговое окно после открытия файла .csv.

Главное требование-это:

результат, отображаемый в диалоговом окне, будет изменен, когда мы обновим столбцы, представленные в файле .csv за один раз (т. е. @Run time).

Что я уже пробовал:

Я пытаюсь отобразить строки в заданных полях редактирования с помощью следующего примера кода:

CStdioFile file;            // access the entire given file
CString cstrLine, Temp;     // Reading the entire row at a time from excel sheet

if (file.Open(L"Data.csv", CFile::shareExclusive | CFile::typeText))    // L ---- 
                                                                      //Multybyte type
{

  while (file.ReadString(cstrLine))
  Temp = cstrLine;
  cstrLine = Temp;         // Reading the last Row every time

  int i = 0;

  for (CString sItem = cstrLine.Tokenize(_T(","), i); i >= 0; sItem = 
                                                       cstrLine.Tokenize(_T(","), i))
  {
	sItem.Trim();  // For trimming extra spaces
	str.Add(sItem);
  }

  m_csName = str.GetAt(0);  //0 means Column 1,s data
  m_csSurName = str.GetAt(1); // 1 means Column 2's data    /* of particular row in 
                                                             Excel sheet */ 
  m_csAge = str.GetAt(2); // 2 means Column 3's data

  UpdateData(FALSE); // Variable 2 Control

  file.Close();
}


Но я хочу следующее требование: т. е.,

"результат, который отображается в диалоговом окне (в полях редактирования), будет изменен, когда мы обновим столбцы, представленные в файле .csv за один раз (т. е. @Run time)."

Richard MacCutchan

Ваши исходные данные-это файл .csv, поэтому после того, как вы его прочитали и отобразили, вам больше нечего делать. Как это соотносится с данными Excel, на которые вы ссылаетесь?

vpeguda

Вот почему я спрашиваю.... Если там есть какой-то ссылочный код ... не могли бы вы поделиться им один раз?.....

Спасибо

Richard MacCutchan

Ваш вопрос не совсем ясен. Вы говорите о каком-то файле Excel, но данные, которые Вы читаете, поступают из файла .csv. Пожалуйста, отредактируйте свой вопрос и объясните, что именно вы пытаетесь сделать.

1 Ответов

Рейтинг:
2

KarstenK

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

Но более элегантным является наблюдение за файлом или каталогом для изменений. В статье Microsoft
Получение Уведомлений Об Изменении Каталога
это не только описано, но и некоторые примеры кода, как это может быть реализовано. Я также проверил бы время последнего изменения, чтобы избежать избыточного выполнения обновления.

Очень важно очистить все ручки на выходе!!!