C#でWindowsFormsプログラミング

C# ファイルの書き込みと入力チェックをマスターしよう!

C#入門フォーム編の第7回目はファイルの書き込みと入力チェックです。ファイルとは,普段あなたがパソコンで保存しているメモ帳やエクセルファイルと同じ感じでファイルの書き込みをプログラムでやります。入力チェックとは,保存する前などに保存してもよいか,エラーはないか?正しく入力されているか?をチェックする処理の事です。これは現場ではよく出る処理なので必ずマスターしましょうね!

保存処理

それでは保存処理にメッセージ表示だけでなく,実際に保存する処理を実装します。

private void SaveButton_Click(object sender, EventArgs e)
{
    DialogResult result = MessageBox.Show("保存しますか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
    if (result == DialogResult.Yes)
    {
    ■■■■■変更箇所■■■■■■■■■■■■■■■■
        using (var sw = new System.IO.StreamWriter(
           "save.txt", true, System.Text.Encoding.GetEncoding("shift_jis")))
        {
            sw.Write("書きました");
        }
    ■■■■■■■■■■■■■■■■■■■■■■■■■
        StatusText.Text = "保存しました";
    }
    else
    {
        StatusText.Text = "キャンセルしました";
    }
}

追加箇所では「save.txt」に「書きました」という文字を保存する処理を行っています。
System.IO.StreamWriterはクラスライブラリに存在するクラスです。引数にファイルのパス「save.txt」,追加モードかどうか(追加するのでTrueとします),最後に文字コードを引数にしています。

文字コードはファイルを書くときにどのような形態で書くかの約束事です。
書く側と読む側で一致していないと正しく読むことができません。
通常日本語と英語しか扱わない場合はShift-jisで問題ないでしょう。

「using」はStreamWriterを生成後に後始末をきっちりしてもらうために記述しています。ファイルは外部との接触になるので,開いたままにならないようにusingで囲みます。
「sw.Write(“書きました”);」の部分で実際にファイルへ書き込んでいます。
この状態で保存を行うとsave.txtファイルに「書きました」と保存されます。

ちなにsave.txtファイルは下記のフォルダーに生成されます。
【プログラムのあるフォルダー】\Winform\Winform\bin\Debug

ファイルへの書き込みができることが確認できたので,実際の値を保存する処理に書き換えます。

using (var sw = new System.IO.StreamWriter(
    "save.csv", true, System.Text.Encoding.GetEncoding("shift_jis")))
{
    sw.Write(IdTextBox.Text + ",");
    sw.Write(MailCheckBox.Checked + ",");
    sw.Write(MailAdressTextBox.Text + ",");
    if (BusinessRadioButton.Checked)
    {
        sw.Write("1" + ",");
    }
    else
    {
        sw.Write("0" + ",");
    }

    sw.Write(EnableComboBox.Text);
    sw.WriteLine("");
}

画面の項目を「,」カンマ区切りでつなげて1回の保存で1行分のデータにしています。
最後のsw.WriteLine(“”);は改行コードを入れるために記述しています。
このようなカンマ区切りで保存する形式をCSV形式といいます。
そのためファイルの拡張子を「.txt」から「.csv」に変更しています。
プランに関しては「無料」か「ビジネス」のどちらかになるため,無料のときは「0」,ビジネスのときは「1」を保存しています。

次のようなデータを保存すると

下記のように保存されます。
(CSVファイルは右クリックで編集を選択するとメモ帳などで見ることができます。)

WindowsFormsプログラミング