📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 137行目: | 137行目: | ||
File.close(); | File.close(); | ||
</syntaxhighlight> | |||
<br><br> | |||
== CSVファイル == | |||
以下の例では、CSVファイルを作成している。<br> | |||
処理手順は以下の通りである。<br> | |||
# 数値データを生成する。<br>ここでは、sin曲線y=sin(x)を生成する。 | |||
# 数値データをテキストデータに変換する。 | |||
# ファイル保存ダイアログを開いて、保存するファイル名を入力する。 | |||
# 全テキストデータを書き込む。 | |||
<br> | |||
<syntaxhighlight lang="c++"> | |||
#include <math.h> | |||
#include <sstream> | |||
#include <vector> | |||
#include <QFileDialog> | |||
#include <QMessageBox> | |||
#include <QTextStream> | |||
#include <QFile> | |||
#include "mainwindow.h" | |||
#include "ui_mainwindow.h" | |||
using namespace std; | |||
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) | |||
{ | |||
ui->setupUi(this); | |||
} | |||
MainWindow::~MainWindow() | |||
{ | |||
delete ui; | |||
} | |||
void MainWindow::on_pushButton_clicked() | |||
{ | |||
// Input File Name | |||
QString FileName = QFileDialog::getSaveFileName(this, tr("Save CSV File"), "", tr("CSV (*.csv);;All Files (*)")); | |||
if(FileName.isEmpty()) | |||
{ // Cancel | |||
return; | |||
} | |||
// Generate CSV Data | |||
int iSize = 100; | |||
vector<double> lx(iSize, 0.0f), | |||
ly(iSize, 0.0f); | |||
double dx = 2 * 3.15159 / iSize; | |||
for(int i = 0; i < iSize; i++) | |||
{ | |||
lx[i] = i * dx; | |||
ly[i] = sin(vx); | |||
} | |||
// Convert to String | |||
QString strFileData = ""; | |||
//stringstream ss; | |||
for(int i = 0; i < iSize; i++) | |||
{ | |||
strFileData += lx[i] + ", " + ly[i] + "\n"; | |||
//ss << lx[i] << "," << ly[i] << endl; | |||
} | |||
// Write to File | |||
QFile File(FileName); | |||
if(!File.open(QIODevice::WriteOnly)) | |||
{ | |||
QMessageBox::information(this, tr("Unable to open file"), File.errorString()); | |||
return; | |||
} | |||
QTextStream OutStream(&File); | |||
// 浮動小数点をe形式にする | |||
//OutStream.setRealNumberNotation(QTextStream::ScientificNotation); | |||
// 浮動小数点の桁数を固定 | |||
//OutStream.setRealNumberNotation(QTextStream::FixedNotation); | |||
// 浮動小数点の桁数を設定 | |||
OutStream.setRealNumberPrecision(3); | |||
OutStream << strFileData; | |||
//OutStream << ss.str().c_str(); | |||
File.close(); | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||