[kmymoney4] [Bug 360747] CSV Importer detects more columns than are assigned

NSLW via KDE Bugzilla bugzilla_noreply at kde.org
Sat Mar 19 19:54:31 UTC 2016


--- Comment #4 from NSLW <lukasz.wojnilowicz at gmail.com> ---
Created attachment 97981
  --> https://bugs.kde.org/attachment.cgi?id=97981&action=edit
[PATCH] Use parseLine() to determine most likely fieldDelimiter

The place where warning is displayed is this:
  if (m_columnList.count() < m_endColumn) {
    if (!m_csvDialog->m_accept) {
      QString row = QString::number(m_row);
      int ret = KMessageBox::questionYesNoCancel(0, i18n("<center>Row number %1
does not have the expected number of columns.</center>"
                "<center>This might not be a problem, but it may be a header
                "<center>You may accept all similar items, or just this one, or
                row), i18n("CSV import"),
                KGuiItem(i18n("Accept All")),
                KGuiItem(i18n("Accept This")),
      if (ret == KMessageBox::Cancel) {
        return ret;
      if (ret == KMessageBox::Yes) {
        m_csvDialog->m_accept = true;

Where m_columnList:
m_columnList = m_parse->parseLine(data);


m_endColumn = m_maxColumnCount = colCount =
data.count(m_parse->m_fieldDelimiterCharList[count]) + 1;

Data.count doesn't handle following lines well:

It return 9 columns, while in fact it should return 8 (single value in double
quotes "12,7" is treated as two columns). parseLine(data) returns correct
value, which is 8 columns. Attached patch fixes this issue. Please revise it
and apply to master

You are receiving this mail because:
You are the assignee for the bug.

More information about the KMyMoney-devel mailing list