void Hdfs::copyFromLocal(string src, string dst) { auto_ptr<ostream> dstStream(create(dst)); fstream srcStream; srcStream.open(src.data(), fstream::in); if (srcStream.good() == false) { throw ios_base::failure("Error opening src."); } // just using typical block size on disk (4096), there is probably a better value. char buf[4096]; while (srcStream.eof() == false) { srcStream.read(buf, 4096); dstStream->write(buf, srcStream.gcount()); } dstStream->flush(); }
bool NewExperimentSettingsDialog::saveToCSV(const QString &fileName) { QFile file(fileName); if(!file.open(QIODevice::WriteOnly)) return false; QTextStream dstStream(&file); QTextCodec *codec = QTextCodec::codecForName("Windows-1251"); if (codec!= NULL) { dstStream.setCodec(codec); } else { assert(1); } if (ui->rbtnGetYFromFunction->isChecked()) { dstStream << QString::fromUtf8("Функция:") << ";" << ui->tFormulaInput->toPlainText() << "\r\n"; if (ui->rbRadianCorner) { dstStream << QString::fromUtf8("Мера угла:") << ";" << "radian" << "\r\n"; } else { dstStream << QString::fromUtf8("Мера угла:") << ";" << "degrees" << "\r\n"; } } dstStream << QString::fromUtf8("ТАБЛИЦА ФАКТОРОВ;\r\n"); dstStream << QString::fromUtf8("Число факторов:") << ";" << ui->FactNum_spinBox->text() << "\r\n"; dstStream << QString::fromUtf8("Число опытов ПФЭ:") << ';' << ui->PFEnum_labelPFE->text() << ';' << "\r\n"; dstStream << QString::fromUtf8("Дробность реплики:") << ";" << ui->label_drob->text() << ";\r\n"; dstStream << QString::fromUtf8("Число базовых факторов:") << ";" << ui->label_FactBase->text() << ";\r\n"; dstStream << QString::fromUtf8("Центры плана:") << ';' << "\r\n"; for(size_t i = 0; i < ui->tableWidget_Znach->rowCount(); i++) { dstStream << ';' << ExperimentTable::doubleWithComma( ui->tableWidget_Znach->item(i, 2)->text().toDouble()) << ';'; dstStream << "\r\n"; } dstStream << QString::fromUtf8("Интервал варьирования:") << ';' << "\r\n"; for(size_t i = 0; i < ui->tableWidget_Znach->rowCount(); i++) { dstStream << ';' << ExperimentTable::doubleWithComma(ui->tableWidget_Znach->item(i, 6)->text().toDouble()) << ';'; dstStream << "\r\n"; } dstStream << QString::fromUtf8("Размер описаний:") << ';'; dstStream << ui->tableWidget_Znach->rowCount() << ';' << "\r\n"; dstStream << QString::fromUtf8("Описания:") << ';' << "\r\n"; for(size_t i = 0; i < ui->tableWidget_Znach->rowCount(); i++) { dstStream << ';' << ui->tableWidget_Znach->item(i, 1)->text() << ';'; dstStream << "\r\n"; } dstStream << QString::fromUtf8("Уровень взаимодействия:") << ";" << ui->spinBox_interactionLevel->text() << ";\r\n"; if (MATHMODEL == _modelType) { dstStream << QString::fromUtf8("Тип модели:") << ";" << "MATHMODEL" << ";\r\n"; } else { dstStream << QString::fromUtf8("Тип модели:") << ";" << "OPTIMUM" << ";\r\n"; dstStream << QString::fromUtf8("Поиск точек перегиба") << ";\r\n"; dstStream << QString::fromUtf8("По максимуму:") << ";" << "1" << ";\r\n"; dstStream << QString::fromUtf8("Величина шага:") << ";" << "0,5" << ";\r\n"; dstStream << QString::fromUtf8("Количество шагов:") << ";" << "7" << ";\r\n"; dstStream << QString::fromUtf8("Допустимое отклонение:") << ";" << "30" << ";\r\n"; } dstStream << QString::fromUtf8("Количество параллельных опытов:") << ";" << ui->spinBox_paral->text() << "\r\n"; }