/*
* File: PreEdit.h
* Author: akaMDA
*
* Created on 29 Октябрь 2010 г., 19:57
*/
#ifndef PREEDIT_H
#define PREEDIT_H
#include <QtCore/QtCore>
class PreEdit : public QThread {
Q_OBJECT
public:
PreEdit(QObject* parent, QString f);
virtual ~PreEdit();
protected:
void run();
private:
QTextStream* ts_in;
QTextStream* ts_out;
QString file;
QFile* file_in;
QFile* file_out;
};
#endif /* PREEDIT_H */
/*
* File: PreEdit.cpp
* Author: akaMDA
*
* Created on 29 Октябрь 2010 г., 19:57
*/
#include "PreEdit.h"
PreEdit::PreEdit(QObject* parent, QString f){
setParent(parent);
file= f;
file_in = new QFile(file);
file_in->open(QIODevice::ReadOnly);
QString fil = file.split('\\').last();
file_out = new QFile(fil);
file_out->open(QIODevice::WriteOnly);
ts_in = new QTextStream(file_in);
ts_in->setCodec("Windows-1251");
ts_out = new QTextStream(file_out);
ts_out->setCodec("Windows-1251");
}
PreEdit::~PreEdit() {
}
void PreEdit::run(){
QChar ch;
QChar pre_ch=0x0000;
while(!ts_in->atEnd())
{
*ts_in>>ch;
if(ch >= 0x0430 && ch <= 0x044F | ch >= 0x0061 && ch <= 0x007A | ch >= 0x0030 && ch <= 0x003A) *ts_out<<ch; //вставка без изменений маленьких букв, цифр
if(ch == 0x0014 && pre_ch == 0x0014) continue; //удаление нескольких пробелов
if(ch >= 0x0410 && ch <= 0x042F | ch >= 0x0041 && ch <= 0x005A) *ts_out<<(ch+32); //перевод в нижний регистр
if(ch == 0x0401 | ch == 0x0451) *ts_out<<0x0435; // замена ёЁ на е
if(ch == 0x002A || ch == 0x002B || ch == 0x002D || ch == 0x002F || ch == 0x003A || ch == 0x003C || ch == 0x003D || ch == 0x003E)//символы
{
if(pre_ch == ' ')
{
*ts_out<<0x0435;
*ts_out<<' ';
pre_ch = ' ';
continue;
}
if(pre_ch != ' ')
{
*ts_out<<' ';
*ts_out<<0x0435;
*ts_out<<' ';
pre_ch = ' ';
continue;
}
}
else continue;
pre_ch=ch;
}
file_in->close();
file_out->close();
exec();
}
/*
* File: WizardPage2.h
* Author: akaMDA
*
* Created on 29 Октябрь 2010 г., 9:52
*/
#ifndef WIZARDPAGE2_H
#define WIZARDPAGE2_H
#include <QtGui/QtGui>
class WizardPage2 : public QWizardPage {
Q_OBJECT
public:
WizardPage2(QWidget* parent);
WizardPage2(QWidget* parent, const WizardPage2& orig);
virtual ~WizardPage2();
void setTextStat(QString* str);
void begin();
private:
QVBoxLayout* lay;
QLabel* lbPict;
QLabel* lbTextStat;
QStringList* strLsFiles;
void initializePage();
//QList<PreEdit> lsPreEdit;
};
#endif /* WIZARDPAGE2_H */
/*
* File: WizardPage2.cpp
* Author: akaMDA
*
* Created on 29 Октябрь 2010 г., 9:52
*/
#include "WizardPage2.h"
#include "PreEdit.h"
WizardPage2::WizardPage2(QWidget* parent) {
setParent(parent);
lay = new QVBoxLayout(this);
lbPict = new QLabel(tr("Картинка часов"));
lbPict->setAlignment(Qt::AlignCenter);
lay->addWidget(lbPict, Qt::AlignCenter);
lbTextStat = new QLabel(tr("Состояние процесса"));
lbTextStat->setAlignment(Qt::AlignCenter);
lay->addWidget(lbTextStat, Qt::AlignCenter);
strLsFiles = new QStringList;
setLayout(lay);
}
WizardPage2::WizardPage2(QWidget* parent, const WizardPage2& orig) {
}
WizardPage2::~WizardPage2() {
}
void WizardPage2::setTextStat(QString* str){
lbTextStat->setText(*str);
}
void WizardPage2::initializePage(){
strLsFiles->append(field("File").toStringList());
begin();
}
void WizardPage2::begin(){
PreEdit pe(this, strLsFiles->at(0));
pe.start(QThread::IdlePriority);
}
Компилится и собирается нормально, но при запуске происходит ошибка:
Прпкращена работа
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: DataClustering.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 4cda94ab
Имя модуля с ошибкой: QtCored4.dll
Версия модуля с ошибкой: 4.7.0.0
Отметка времени модуля с ошибкой: 4c8d7577
Код исключения: c0000005
Смещение исключения: 001aea99
Версия ОС: 6.1.7600.2.0.0.768.11
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789
Ознакомьтесь с заявлением о конфиденциальности в Интернете:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419
Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\windows\system32\ru-RU\erofflps.txt