Loading...
Searching...
No Matches
tsvreader.h
Go to the documentation of this file.
/**
* \file odsstream/tsvreader.h
* \date 11/11/2018
* \author Olivier Langella
* \brief parser for text files (tsv, csv)
*/
/*******************************************************************************
* Copyright (c) 2018 Olivier Langella <Olivier.Langella@u-psud.fr>.
*
* This file is part of the libodsstream library.
*
* libodsstream is a library to read and write ODS documents as streams
* Copyright (C) 2018 Olivier Langella <Olivier.Langella@u-psud.fr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
*by the Free Software Foundation, either version 3 of the License, or (at your
*option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Contributors:
* Olivier Langella <Olivier.Langella@u-psud.fr> - initial API and
*implementation
******************************************************************************/
#pragma once
#include <QFile>
#include <QTextStream>
#include "config.h"
#include "reader/odscell.h"
#include "odsdochandlerinterface.h"
class TsvReader
{
private:
std::size_t m_columnNumber=0;
std::size_t m_rowNumber=0;
OdsDocHandlerInterface &m_handler;
QChar m_separator = '\t';
public:
/**
* creates an ODS reader with a reader handler
*
* @Param OdsDocHandlerInterface & the interface to implement to read ODS
* files
*/
TsvReader(OdsDocHandlerInterface &handler);
virtual ~TsvReader();
void parse(QFile &tsvFile);
void parse(QIODevice *p_inputstream);
void parse(QTextStream &in);
void setSeparator(TsvSeparator separator);
private:
/** @brief reads a CSV row
* based on
* https://stackoverflow.com/questions/27318631/parsing-through-a-csv-file-in-qt
*/
bool readCsvRow(QTextStream &in);
};
OdsDocHandlerInterface
Definition odsdochandlerinterface.h:43
TsvReader::parse
void parse(QFile &tsvFile)
Definition tsvreader.cpp:67
TsvReader::~TsvReader
virtual ~TsvReader()
Definition tsvreader.cpp:45
TsvReader::m_separator
QChar m_separator
Definition tsvreader.h:52
TsvReader::m_handler
OdsDocHandlerInterface & m_handler
Definition tsvreader.h:50
TsvReader::TsvReader
TsvReader(OdsDocHandlerInterface &handler)
Definition tsvreader.cpp:41
TsvReader::readCsvRow
bool readCsvRow(QTextStream &in)
reads a CSV row based on https://stackoverflow.com/questions/27318631/parsing-through-a-csv-file-in-q...
Definition tsvreader.cpp:115
TsvReader::setSeparator
void setSeparator(TsvSeparator separator)
Definition tsvreader.cpp:49
TsvReader::m_columnNumber
std::size_t m_columnNumber
Definition tsvreader.h:47
TsvReader::m_rowNumber
std::size_t m_rowNumber
Definition tsvreader.h:48
config.h
TsvSeparator
TsvSeparator
Definition config.h:11
odscell.h
odsdochandlerinterface.h
interface to use as a wildcard to writer in either TSV, ODS TSVdirectory writers any kind of writer c...