/
importer.cpp
74 lines (59 loc) · 2.32 KB
/
importer.cpp
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <QDebug>
#include <QDir>
#include <QFile>
#include <QMessageBox>
#include <QStandardItem>
#include <QTextCodec>
#include <QTextStream>
#include "importer.h"
Importer::Importer(QObject *parent) :
QObject(parent)
{
}
QStandardItemModel* Importer::ImportData()
{
QString current_path = QDir::currentPath() + "//" + datafilename();
QFile file(QDir::toNativeSeparators(current_path));
if(!file.open(QIODevice::ReadOnly)) {
QMessageBox::information(0, tr("Ошибка"), file.errorString());
qDebug() << "Error in open file: " + file.errorString();
}
QTextStream in(&file);
in.setCodec(QTextCodec::codecForName("IBM 866"));
QString line = in.readLine();
QStringList fields = line.split(separator());
QStandardItemModel *model = new QStandardItemModel(0, fields.count()+1);
model->setHorizontalHeaderLabels(fields);
// Заменяем заголовки столбцов
for (int i = 0; i < model->columnCount() - 1; i++)
{
QStandardItem *item = model->horizontalHeaderItem(i);
QString item_text = item->text();
if (item_text.compare(tr("ФИОТБН")) == 0) {
item->setText(tr("Отправитель"));
} else if (item_text.compare(tr("Кому")) == 0) {
item->setText(tr("Получатель"));
}
}
int last_col_idx = model->columnCount() - 1;
model->setHorizontalHeaderItem(last_col_idx, new QStandardItem(tr("Состояние")));
model->horizontalHeaderItem(last_col_idx)->setText(tr("Состояние"));
// model->setHorizontalHeaderItem(0, new QStandardItem(tr("ТБН")));
// model->setHorizontalHeaderItem(1, new QStandardItem(tr("Отправитель")));
// model->setHorizontalHeaderItem(4, new QStandardItem(tr("Получатель")));
// model->setHorizontalHeaderItem(12, new QStandardItem(tr("Состояние")));
while(!in.atEnd())
{
QString line = in.readLine();
QStringList fields = line.split(separator());
QStringListIterator it(fields);
QList<QStandardItem *> data;
while (it.hasNext())
{
data << new QStandardItem(it.next());
}
model->appendRow(data);
}
file.close();
return model;
}