DateField.Value = DateTime.Now.ToShortDateString();
const string dateTimePattern = "yyyy.MM.dd";
DateField.Value = DateTime.Now.ToString(dateTimePattern);
void reportHelp::on_tableView_doubleClicked(const QModelIndex &index)
{
ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1);
QTableWidgetItem* item = new QTableWidgetItem;
item->setText(index.data().toString());
item->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->setItem(ui->tableWidget->rowCount() - 1, 0, item);
}
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
ofstream fout("output.txt"); // открываем поток записи
ifstream fin("input.txt"); // поток чтения из файла
void divide(string buff)
{
const int size16mes = 4; // константа равная размеру отделенного сообщения
int buffl = buff.length(); // размер сообщения
string buff4 = ""; // буфер для 4символьного сообщения
string svar = ""; // переменная строка для одного символа
string itog = "";
if (buffl % 4 == 0) {
for (int j = buffl; j > 0; j = j - 4) { // от размера сообщения, пока размер больше нуля с каждым подходом уменьшаем на 4
for (int i = 1; i <= size16mes; i++) { // от 1 до 4х увеличиваем
svar = buff[buff.size() - 1]; // переписываем последний символ
buff.erase(buff.rbegin().base() - 1); // удаляем
buff4.insert(0, svar); // помещаем этот символ в новую строку на первое место
}
int dec = 0, num, v = 1;
for (num = buff4.length() - 1; num >= 0; num--){// перевод в 10
if (buff4[num] == '1')
dec += v;
v *= 2;
}
int buff10 = dec; // результат в 10
stringstream stream;
stream << hex << buff10;
string result(stream.str()); // в 16
itog.insert(0, result);
buff4 = ""; // чистим переменную
}
fout << itog << endl; // записываем в файл
}
else {
int lacks = size16mes - (buffl % 4); // не хватает
for (int i = 0; i < lacks; i++) {
buff.insert(0, "0"); // заполняем нулями
}
for (int j = buffl; j > 0; j = j - 4) { // от размера сообщения, пока размер больше нуля с каждым подходом уменьшаем на 4
for (int i = 1; i <= size16mes; i++) { // от 1 до 4х увеличиваем
svar = buff[buff.size() - 1]; // переписываем последний символ
buff.erase(buff.rbegin().base() - 1); // удаляем
buff4.insert(0, svar); // помещаем этот символ в новую строку на первое место
}
int dec = 0, num, v = 1;
for (num = buff4.length() - 1; num >= 0; num--) {// перевод в 10
if (buff4[num] == '1')
dec += v;
v *= 2;
}
int buff10 = dec; // результат в 10
stringstream stream;
stream << hex << buff10;
string result(stream.str()); // в 16
itog.insert(0, result);
buff4 = ""; // чистим переменную
}
fout << itog << endl; // записываем в файл
}
}
int main()
{
setlocale(LC_ALL, "rus"); // корректное отображение Кириллицы
string buff; // буфер промежуточного хранения считываемого из файла текста
int nummess; // переменная в которой хранится количество двоичных сообщений
fin >> nummess; // считать число количество строк
for (int i = 0; i < nummess; i++) {
fin >> buff; // считали строку из файла
divide(buff); // поместили строку в функцию для деления по 4 символа
}
fout.close(); // закрываем поток записи в файл.
fin.close(); // закрываем поток чтения из файла
return 0;
}
void MainWindow::on_del_butt_clicked()
{
QSqlQueryModel *setquery1 = new QSqlQueryModel;
QSqlTableModel *model = new QSqlTableModel;
QItemSelectionModel *selectModel = ui->tableView->selectionModel();
if(!selectModel->selectedRows().isEmpty()) //проверяем выделили ли строку (не пустая ли)
{
int nr = selectModel->selectedRows().first().row(); //вписываем номер строки
if (QMessageBox::Yes == QMessageBox::question(this, "Удалить?",
"Уверены?",
QMessageBox::Yes|QMessageBox::No))
{
//ui->dir_excel->setText(ui->tableView->model()->data(ui->tableView->model()->index(nr,0)).toString());
QString indid = ui->tableView->model()->data(ui->tableView->model()->index(nr,0)).toString();
setquery1->setQuery("DELETE FROM ships WHERE id="+indid+";");
model->setTable("ships");
model->select();
ui->tableView->setModel(model);
setquery1->setHeaderData(1, Qt::Horizontal, "№ судо-потока");
setquery1->setHeaderData(2, Qt::Horizontal, "Наименование судна");
setquery1->setHeaderData(3, Qt::Horizontal, "Флаг");
setquery1->setHeaderData(4, Qt::Horizontal, "Проект судна");
setquery1->setHeaderData(5, Qt::Horizontal, "Состав судна");
setquery1->setHeaderData(6, Qt::Horizontal, "Проект состава");
setquery1->setHeaderData(7, Qt::Horizontal, "Судовладелец");
setquery1->setHeaderData(8, Qt::Horizontal, "Груз (пассажиры)");
setquery1->setHeaderData(9, Qt::Horizontal, "Тоннаж (балласт)");
setquery1->setHeaderData(10, Qt::Horizontal, "Осадка (см)");
setquery1->setHeaderData(11, Qt::Horizontal, "Пункт отправления");
setquery1->setHeaderData(12, Qt::Horizontal, "Местоположение\n(река, км с.х.)");
setquery1->setHeaderData(13, Qt::Horizontal, "Дата выхода из\n пункта отправления");
setquery1->setHeaderData(14, Qt::Horizontal, "Пункт назначения");
setquery1->setHeaderData(15, Qt::Horizontal, "Местоположение\n(река, км с.х.)2");
setquery1->setHeaderData(16, Qt::Horizontal, "Дата прибытия в\n пункт назначения");
setquery1->setHeaderData(17, Qt::Horizontal, "Дата отметки судна\n при пересечении\n границы бассейна");
setquery1->setHeaderData(18, Qt::Horizontal, "Наименование бассейна");
setquery1->setHeaderData(19, Qt::Horizontal, "Диспетчер ");
ui->tableView->setModel(setquery1);
ui->tableView->setColumnHidden(0, true);
ui->tableView->horizontalHeader()->setStyleSheet("QHeaderView::section { background-color:silver }");
}
}
else
{
//сообщение о том, что строка пуста
QMessageBox::information(0, "Ошибка", "Строка не выделена.");
}
}
int rows = ui->tableView->horizontalHeader()->count();
int columns = ui->tableView->verticalHeader()->count();
for(int k=1; k<rows;k++)
{
QVariant header = ui->tableView->model()->headerData(k, Qt::Horizontal);
QAxObject *cell = StatSheet->querySubObject("Cells(QVariant,QVariant)", 1, k);
cell->setProperty("Value", QVariant(header));
/*
тут 65 строчек внешнего оформления (Переносы, цвета, фильтры, границы)
*/
delete cell;
}
for(int i=2; i<=columns+1;i++)//строки
{
for(int j=1;j<rows;j++)//столбцы
{
QVariant value1 = ui->tableView->model()->data(ui->tableView->model()->index(i-2,j)); //i - начать с 2 ячейки j - упустить первый столбец
QAxObject* cell = StatSheet->querySubObject("Cells(QVariant,QVariant)", i, j);
// вставка значения переменной data (любой тип, приводимый к QVariant) в полученную ячейку
cell->setProperty("Value", QVariant(value1));
value1="";
}
}
// освобождение памяти
delete StatSheet;
mSheets->dynamicCall("Save()");
delete mSheets;
delete shab;//wbook;
delete wbooks;//wbooks;
excel->dynamicCall("Quit()");
ui->name_excel_file->setText("");
delete excel;
qDebug() << query.lastError().number()<< query.lastError().text();