見出し画像

わからないことはcopilotに聞いてVB.NETでディスクトップアプリを作ってみよう NO.09 CSV読み書き

アオノおじさんのひとりごと

(本文とは関係ありません、ひとりごとです)
 最近労働環境がよくなって? 無理な残業もなくなっているのでしょうか。おじさんのサラリーマン時代は、バブル前ぐらいで、残業100時間以上はあたりまえ、徹夜も有り、土曜日も休みではなく、社有車もエアコン無しでした。それがあたりまえでしたの、あまり大変と思わなかったですよ。
 昔の人気芸能人なども 3時間ぐらいしか、睡眠時間がなかったような話も聞きますが、これも、好きな仕事をしているから、疲れも感じないのかもしれませね。仕事が忙しい若者もいらっしゃるとは思いますが、できるだけ楽しんで仕事してくださいね、いやいや していると、体を壊しますよ。

CSVファイルの読み書き


(ここから本文)
サンプルは以下からダウンロードできます。 
  (5~11回まですべてのサンプル)

送りジョーソフトの自社名をCSVファイルで保存できるようにしています。
サンプルソフトはこの部分だけでも 長いリストになりますので
自社名1、2だけの 読込 保存 できるようにしています。

以下が09サンプルPG

CSVの保存方法をcopilotに聞いてみると 以下のような回答になりました。

構造体を使用して書き込みする方法を聞くと以下にような回答になりました。

複数行ある場合は、この方法もいいですが、1行の場合 別の方法でプログラムしてみます。
JisySet で構造体を作成します。
SelA  自社名1
SelB  自社名2 

CSV読み込み

=================================================
Dim fileName As String = System.IO.Path.Combine(Application.StartupPath(), "OkuriJyoMT.okm")

Application.StartupPath() 保存されているPASS 起動時のPASSを設定
OkuriJyoMT.okm のファイル名
=================================================
Dim fileNo As Integer = FreeFile() フリーなファイルNO取得
=================================================
FileOpen(fileNo, fileName, OpenMode.Input) inputでファイルを開きます=================================================
ReDim Preserve Jisya(0)
Input(fileNo, Jisya(0).SelA)   自社名1を読込
Input(fileNo, Jisya(0).SelB)   自社名2を読込
=================================================
FileClose(fileNo)        ファイルを閉じる

Smei1.Text = Jisya(0).SelA
Smei2.Text = Jisya(0).SelB   テキストBOXに入れる
=================================================

CSV書き込み

=================================================
Jisya(0).SelA = Smei1.Text
Jisya(0).SelB = Smei2.Text    テキストBOXを構造体に入れる
=================================================
FileOpen(fileNo, fileName, OpenMode.Output) Outputでファイルを開きます
=================================================
Write(fileNo, Jisya(0).SelA)   自社名1を書込
Write(fileNo, Jisya(0).SelB)   自社名2を書込
=================================================
FileClose(fileNo)        ファイルを閉じる
=================================================
write関数で CSV形式(, カンマ区切り)に保存されますので、とても便利です

    '*********************************************************************************
    '*   自社情報用構造体
    '*********************************************************************************
    Private Structure JisyaSet
        Dim SelA As String          '自社名
        Dim SelB As String          '代表名
    End Structure
    Private Jisya() As JisyaSet
    '*********************************************************************************
    '*   読込(F9)
    '*********************************************************************************
    Private Sub ButF9_Click(sender As Object, e As EventArgs) Handles ButF9.Click
        Dim fileName As String = System.IO.Path.Combine(Application.StartupPath(), "OkuriJyoMT.okm")
        Dim fileNo As Integer = FreeFile()              'ファイル番号を取得

        Try
            FileOpen(fileNo, fileName, OpenMode.Input)

            ReDim Preserve Jisya(0)
            Input(fileNo, Jisya(0).SelA)
            Input(fileNo, Jisya(0).SelB)

            FileClose(fileNo)               'ファイルを閉じる

        Catch ex As Exception

        End Try

        Smei1.Text = ""
        Smei2.Text = ""
        If Not IsDBNull(Jisya(0).SelA) Then Smei1.Text = Jisya(0).SelA
        If Not IsDBNull(Jisya(0).SelB) Then Smei2.Text = Jisya(0).SelB
    End Sub

    '*********************************************************************************
    '*   書込(F12)
    '*********************************************************************************
    Private Sub ButF12_Click(sender As Object, e As EventArgs) Handles ButF12.Click
        Dim fileName As String = System.IO.Path.Combine(Application.StartupPath(), "OkuriJyoMT.okm")
        Dim fileNo As Integer = FreeFile()                    'ファイル番号を取得

        Jisya(0).SelA = Smei1.Text
        Jisya(0).SelB = Smei2.Text

        Try
            FileOpen(fileNo, fileName, OpenMode.Output)

            Write(fileNo, Jisya(0).SelA)
            Write(fileNo, Jisya(0).SelB)

            FileClose(fileNo)   'ファイルを閉じる

            MessageBox.Show("正常に書き出し完了。")

        Catch ex As Exception

        End Try
    End Sub


読込 書込とも 同じような記述でプログラムできます。CSVの読書方法は、いろいろありますので、いろいろ試してみるのがいいかもしれません。

09 CSVファイルの読み書きはこれで終了です。

← 前の記事に戻る                次の記事に行く →

また、私のホームページには、住所データも登録できるソフトも公開しています。こちらをクリック

以下は、今回の作成予定の実行ファイル OkuriJyo100.zip(無料)です。
01で入手していないかたは、こちらからダウンロードできます。

いいなと思ったら応援しよう!