#ifndef DICCSVREADER_H #define DICCSVREADER_H #include #include #include #include #include #include "../export-import/CsvData.h" class Dictionary; class DicRecord; class DicCsvReader { public: DicCsvReader( Dictionary* aDict ); DicCsvReader(); // For reading entries QFile::FileError readDict( const QString aCsvFilePath, const CsvImportData& aImportData ); QList readEntries( QString aCsvEntries, const CsvImportData& aImportData ); QStringList fieldNames() { return m_fieldNames; } // Last read field names QString unescapeString( QString aString ); private: void initData( const CsvImportData& aImportData ); int readLines( QTextStream& aInStream ); // Returns max number of fields QStringList readFields( const QString aCsvLine ); private: Dictionary* m_dict; // Not own CsvImportData m_params; QRegExp m_fieldSepRx; QRegExp m_chunkEndRx; QRegExp m_singleDelimiterRx; QStringList m_fieldNames; QList m_entries; // Created, but ownership is transfered to the client }; #endif // DICCSVREADER_H