テキストファイルの入出力1
0.今回の目的
前回までは、2回にわたって繰り返しについて学んできました。今回からテキストファイルの入出力 について学ぶことにします。1.テキストファイルへの出力
1.1 テキストファイルについて テキストファイルとは、コンピュータで扱うことが出来るファイルの中で最も基本的なファイルで あり、どの様なOS でもサポートされているファイル形式です。Windows においては、「メモ帳」など で閲覧・編集出来るため、コンピュータによる処理結果を出力し、すぐ確認したい場合などに適して います。また、エクセルもテキストファイルの入出力に対応しているため、出力結果をエクセルに読 み込めば、即座に表やグラフ化することが可能です。 1.2 テキストファイルへの出力1 それでは、実際にテキストファイルを使用してみましょう。前回作成したプログラムをもとに、Fig. 8 – 1 に示す様にコントロールを追加します。追加するコンポーネントのリストは下記の通りです。 ・ラベル:Text プロパティを「出力ファイル名」に変更する。 ・テキストボックス:Name プロパティを「txb_out_fn」に変更する。 ・チェックボックス:Name プロパティを「chb_file_output」に変更し、Text プロパティを「テキ ストファイルへ出力する」に変更する。 ・セーブファイルダイアログ【Tips 248, p.391】(「ダイアログ」内):Name プロパティを 「save_F_dlg」に変更する。 SaveFileDialog(セーブファイルダイアログ)を追加して、名前 を「save_F_dlg」へ変更する 出力するファイルの名前を選択・ 表示するためのテキストボックス 「飽和蒸気圧の計算」ボタンがクリ ックされたときに、計算結果をテキ ストファイルへ出力するかどうかの 選択用チェックボックスまず、出力ファイル名を指定できるようにします。出力ファイル名の指定には、セーブファイルダイ アログコントロールを使用します。セーブファイルダイアログコントロールは、「ダイアログ」ページ にありますので、これを追加して下さい。セーブファイルダイアログコントロールでは、Windows で 良く目にする「保存の為のウィンドウ」が使用されます。出力ファイル名は、セーブファイルダイア ログコントロールのFileName プロパティに保持されます。ユーザーが「保存」ボタンをクリックし たときだけ処理を実行するには、「キャンセルボタンがクリックされたときには処理を中断する」様に 記述します。ダイアログウィンドウでどのボタンがクリックされたかを識別するために、 「DialogResult 型」の変数を定義し、以下の様に記述します。 (DialogResult 型変数) = (ダイアログ用コンポーネント).ShowDialog(); if ((DialogResult 型変数)== DialogResult.Cancel)) { return; } (DialogResult 型変数)へは、ダイアログウィンドウで押されたボタンが代入されます。では、先ほど 追加したエディットコントロール(txb_out_fn)をダブルクリックしたとき「保存ダイアログ」を表示 し、「保存ボタン」がクリックされた場合にそのファイル名をtxb_out_fn に表示するように変更して みましょう。txb_out_fn の DoubleClick イベント(Click イベントではないことに注意)内に、以下の様 に記述して下さい。 次に、テキストファイルへの出力方法について見ていきましょう【Tips 238 内, p.374】。テキストファ イルへ出力するには、下記の手順で行います。 1.「new 演算子」によって StremWriter 型オブジェクトのインスタンスを作成す るとともに、ファイル名関連付ける 2.WriteLine により必要な情報をファイルへ書き込む【Tips 245, p.384】 (手順2 を必要な回数だけ繰り返す) 3.Close コマンドによって、ファイルを閉じる なお、ファイルを閉じ忘れると、ファイルが破損する可能性がありますので、ファイルへの出力処理 を記述する前に、まずは必ずClose を記述する様に習慣付けて下さい。それでは、実際に出力部分を 作成していきましょう。前回作成したClick イベントに Fig. 8 – 3 を追加します。 Fig. 8 – 2 出力ファイル名の指定 「キャンセルボタン」がクリッ クされた時は処理を中断する
Fig. 8 – 3 ファイルへの出力の為の設定をする なお、if 文の処理は、チェックボックスにチェックが入っていて、出力ファイル名が指定されていると きは ・txt_file に指定したファイル名を割り当てる ・temp_output_flag を true に設定する という事を意味しています。次に、ファイルへの出力部分を追加していきます。まず、for 文の前に Fig. 8 – 4 に示す部分を追加します。 Fig. 8 – 4 出力部分を記述する1
ここでは、もしtemp_output_flag が「true」なら、テキストファイルへ「T[K] Ps[Pa]」を書き込 みます。つぎに、for 文のブロック中に Fig. 8 – 5 に示す部分を追加します。 チェックボックスにチェックが入っていて、出 力ファイル名が指定されているときは ・txt_file に指定したファイル名を割り当てる ・temp_output_flag を true に設定する この部分を追加する 「テキストファイルへ出力する」にチェックが ついていない場合は、「null」(「無」の意味)を 代入して、変数「txt_file」の値を確定する ここから追加(2018.6.22) ここまで追加(2018.6.22)
ここから追加(2018.6.22)
ここまで追加(2018.6.22)
Fig. 8 – 5 出力部分を記述する 2
最後に、for 文のブロックの下(for 文のブロックの外)に、Fig. 8 – 6 に示す部分を追加します。
Fig. 8 – 6 ファイルを閉じるための記述を追加 コンパイルをしてエラーが無ければ実行してみて下さい。出力ファイル名は任意ですが、出力先は USB メモリーにしておいて下さい。実行したら、出力したファイルをエクセルで開いて下さい。正し く計算結果が出力されているでしょうか? この部分を追加する ここから追加(2018.6.22) ここまで追加(2018.6.22) ここから追加(2018.6.22) ここまで追加(2018.6.22) ここから追加(2018.6.22) ここまで追加(2018.6.22) この部分を追加する 【記述する場所に注意!】 For 文のブロック(中かっこ) の外側(下側)に書くこと!
2.今回のまとめ
今回は、テキストファイルへの出力方法に加えて、セーブファイルダイアログコントロールの使用 方法について学びました。これらは、実用的なアプリケーションの作成には必須ですから、しっかり と使用方法をマスターしましょう。それでは、今回のまとめを以下に示します。 【1】 セーブファイルダイアログコントロールは、出力するファイルの名前を指定するためのコント ロールであり、出力ファイル名は、FileName プロパティに保持される【Tips 248, p.391】。 また、「保存」ボタンがクリックされたときのみ処理を実行するには、以下の様に記述する。 (DialogResult 型変数) = (ダイアログ用コンポーネント).ShowDialog(); if ((DialogResult 型変数)== System.Windows.Forms.DialogResult.Cancel)) { return; } 【2】 テキストファイルへ出力する場合には、以下の手順で行う【Tips 238 内, p.374】 1.「new 演算子」によって StremWriter 型オブジェクトのインスタンスを作成す るとともに、ファイル名関連付ける 2.WriteLine により必要な情報をファイルへ書き込む【Tips 245, p.384】 (手順2 を必要な回数だけ繰り返す) 3.Close コマンドによって、ファイルを閉じる 【3】 ファイルの拡張子は「ChangeExtension」というコマンドによって変更できる。なお、 ChangeExtension の書式は以下の通り。 System.IO.Path.ChangeExtension( (もとのファイル名), (新しい拡張子) ) 【4】 ファイルへ文字列を 1 行出力するには、以下に示す Writeln 関数を用いる【Tips 245, p.384】WriteLine((文字列));
なお、Visual C#の宿題は、そのままメールに添付して提出することはできません。 提出方法については、別紙「VisualC#編の課題提出方法について」を参照して下さい。 また、zip ファイル名は、下記にようにすること。 【zip ファイル名の例】 化学工学プログラミング_水田_20190628.zip