69 qDebug() << tsvFile.fileName();
70 QFileInfo tsv_file_info(tsvFile.fileName());
71 if(!tsv_file_info.exists())
73 throw OdsException(QObject::tr(
"TSV file %1 does not exists")
74 .arg(tsv_file_info.absoluteFilePath()));
76 if(!tsv_file_info.isReadable())
78 throw OdsException(QObject::tr(
"TSV file %1 is not readable")
79 .arg(tsv_file_info.absoluteFilePath()));
81 qDebug() << tsv_file_info.absoluteFilePath();
83 if(!tsvFile.open(QIODevice::ReadOnly | QFile::Text))
85 throw OdsException(QObject::tr(
"Unable to read TSV file %1")
86 .arg(tsv_file_info.absoluteFilePath()));
88 QTextStream textStreamInput(&tsvFile);
89 parse(textStreamInput);
98 QTextStream textStreamInput(p_inputstream);
117 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
121 static const int delta[][5] = {
131 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
132 if(textStreamInput.atEnd())
134 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
138 int state = 0, t, previous_state;
144 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
147 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__ <<
" "
149 if(textStreamInput.atEnd())
153 textStreamInput >> ch;
164 previous_state = state;
165 state = delta[state][t];
177 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__
179 if((previous_state == 2) || (previous_state == 3))
197 QObject::tr(
"End-of-file found while inside quotes."));
201 throw OdsException(QObject::tr(
"Text parse error at line %1, column %2:\n"
205 .arg(error.
qwhat()));
208 catch(std::exception &error)
210 throw OdsException(QObject::tr(
"Text parse error at line %1, column %2:\n"
218 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
void setOfficeValueType(const QString &type)
void setValueOfUndefinedType(const QString &value)
void setValueString(const QString &value)
virtual void setCell(const OdsCell &)=0
virtual void endDocument()=0
virtual void startLine()=0
virtual void startSheet(const QString &sheet_name)=0
const char * what() const noexcept override
virtual const QString & qwhat() const
void parse(QFile &tsvFile)
OdsDocHandlerInterface & m_handler
TsvReader(OdsDocHandlerInterface &handler)
bool readCsvRow(QTextStream &in)
reads a CSV row based on https://stackoverflow.com/questions/27318631/parsing-through-a-csv-file-in-q...
void setSeparator(TsvSeparator separator)
std::size_t m_columnNumber
parser for text files (tsv, csv)