File: csvformat.cpp

package info (click to toggle)
sqlitestudio 3.4.17-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 61,252 kB
  • sloc: ansic: 403,094; cpp: 122,803; yacc: 2,619; java: 992; tcl: 495; sh: 440; xml: 426; makefile: 19
file content (54 lines) | stat: -rw-r--r-- 1,738 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "csvformat.h"
#include <QtGlobal>

const CsvFormat CsvFormat::DEFAULT = {{","}, {"\r\n", "\n", "\r"}};

CsvFormat::CsvFormat()
{
}

CsvFormat::CsvFormat(const QString& columnSeparator, const QString& rowSeparator) :
    columnSeparator(columnSeparator), rowSeparator(rowSeparator)
{
    calculateSeparatorMaxLengths();
}

CsvFormat::CsvFormat(const QStringList &columnSeparators, const QStringList &rowSeparators)
{
    if (rowSeparators.size() > 1)
    {
        this->rowSeparators = rowSeparators;
        multipleRowSeparators = true;
        strictRowSeparator = true;
    }
    else if (rowSeparators.size() > 0)
        this->rowSeparator = rowSeparators.first();

    if (columnSeparators.size() > 1)
    {
        this->columnSeparators = columnSeparators;
        multipleColumnSeparators = true;
        strictColumnSeparator = true;
    }
    else if (columnSeparators.size() > 0)
        this->columnSeparator = columnSeparators.first();

    calculateSeparatorMaxLengths();
}

CsvFormat::CsvFormat(const QString& columnSeparator, const QString& rowSeparator, bool strictRowSeparator, bool strictColumnSeparator) :
    columnSeparator(columnSeparator), rowSeparator(rowSeparator), strictColumnSeparator(strictColumnSeparator), strictRowSeparator(strictRowSeparator)
{
    calculateSeparatorMaxLengths();
}

void CsvFormat::calculateSeparatorMaxLengths()
{
    maxColumnSeparatorLength = columnSeparator.length();
    for (const QString& sep : columnSeparators)
        maxColumnSeparatorLength = qMax(sep.length(), maxColumnSeparatorLength);

    maxRowSeparatorLength = rowSeparator.length();
    for (const QString& sep : rowSeparators)
        maxRowSeparatorLength = qMax(sep.length(), maxRowSeparatorLength);
}