<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>テキストファイル | リョクちゃの電脳日記</title>
	<atom:link href="https://dreamparadaisu.com/tag/%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab/feed/" rel="self" type="application/rss+xml" />
	<link>https://dreamparadaisu.com</link>
	<description>今まで学んできたことや、新たに学んだこと、趣味を通して様々な人と共有できたらなと思いはじめた電脳日記。</description>
	<lastBuildDate>Wed, 03 Sep 2025 01:04:48 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<atom:link rel='hub' href='https://dreamparadaisu.com/?pushpress=hub'/>
<site xmlns="com-wordpress:feed-additions:1">180489529</site>	<item>
		<title>【VB.Net】Dictionaryを使ってテキストファイル内の単語数をカウント</title>
		<link>https://dreamparadaisu.com/visualbasic_50/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_50</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sun, 10 Jan 2021 18:52:06 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=1594</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、あるテキストファイル内に含まれる単語の数をカウントし、 どの単語が一番多く含まれているかを判定してくれるプログラムを 作っていくうえでの考え方や実際に作ったのでコードなどを...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_50/">【VB.Net】Dictionaryを使ってテキストファイル内の単語数をカウント</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、あるテキストファイル内に含まれる単語の数をカウントし、</p>
<p>どの単語が一番多く含まれているかを判定してくれるプログラムを</p>
<p>作っていくうえでの考え方や実際に作ったのでコードなどを紹介していきます。</p>
<p>&nbsp;</p>
<p>カウントする上で以前にも紹介したDictionaryを使って行うことで更なる使い方を</p>
<p>覚えてもらえたらなって思います。</p>
<p>&nbsp;</p>
<p>ちなみに前回はこちら。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_49/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2021/01/ETO_8-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2021/01/ETO_8-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2021/01/ETO_8-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2021/01/ETO_8-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_49/" class="blog-card-title-link">【VB.Net】2000年以降の干支を計算するアプリを作ってみた</a></div><div class="blog-card-excerpt">新たに2021年もスタートし、干支も変わったということで今回は2000年以降の年を入力することでその年の干支を計算するWindowsフォームアプリケーションを作成したので紹介していきます。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_49/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_49/" alt="" /></a></div><div class="blog-card-date">2021-01-03 17:19</div></div></div>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BI0VE+4JQ84Y+0K+10CIHD" rel="nofollow">
<img decoding="async" class="aligncenter" src="https://www24.a8.net/svt/bgt?aid=200715242275&amp;wid=001&amp;eno=01&amp;mid=s00000000002006105000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img decoding="async" class="aligncenter" src="https://www16.a8.net/0.gif?a8mat=3BI0VE+4JQ84Y+0K+10CIHD" alt="" width="1" height="1" border="0" />
<h1>準備編</h1>
<h2>準備編：フォームの作成</h2>
<p>以下のフォームを作成していきます。</p>
<figure id="attachment_mmd_1600" class="wp-block-image aligncenter"><img decoding="async" width="680" height="231" src="https://dreamparadaisu.com/wp-content/uploads/2021/01/Word_Count_3.png" class="attachment-680x349 size-680x349" alt="" loading="lazy" align="center" /></figure>
<p>各①～⑤のコントロールについては、以下の表になります。</p>

<table id="tablepress-33" class="tablepress tablepress-id-33">
<thead>
<tr class="row-1">
	<th class="column-1">No</th><th class="column-2">アイテム</th><th class="column-3">コントロール名</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1">1</td><td class="column-2">Label</td><td class="column-3">Label1</td>
</tr>
<tr class="row-3">
	<td class="column-1">2</td><td class="column-2">Label</td><td class="column-3">Label2</td>
</tr>
<tr class="row-4">
	<td class="column-1">3</td><td class="column-2">TextBox</td><td class="column-3">TextBox1</td>
</tr>
<tr class="row-5">
	<td class="column-1">4</td><td class="column-2">TextBox</td><td class="column-3">TextBox2</td>
</tr>
<tr class="row-6">
	<td class="column-1">5</td><td class="column-2">Button</td><td class="column-3">Button1</td>
</tr>
</tbody>
</table>
<!-- #tablepress-33 from cache -->
<p>&nbsp;</p>
<h2>準備編：テキストファイルの準備</h2>
<p>単語の数をカウントするにあたって、以下のテキストファイルを準備します。</p>
<figure id="attachment_mmd_1612" class="wp-block-image aligncenter"><img decoding="async" width="754" height="519" src="https://dreamparadaisu.com/wp-content/uploads/2021/01/Word_Count_4.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>上図のような、テキストファイルを作成しデスクトップ上に保存しておきます。</p>
<h2>実行環境</h2>
<p>筆者の実行環境は、</p>
<ul>

<li>VisualStudio2019</li>

<li>Windows 10 64bit</li>

<li>.Net Framework 4.5.1</li>
</ul>
<p>になります。</p>
<p>※　Windows7 8 8.1でも動作はできますが、画面デザインの表示が変わるかもしれません。</p>
<h2>アプリケーションの目的</h2>
<p>ボタンを押すことでファイルダイアログが開き、適当なテキストファイルを読込ませることで</p>
<p>そのテキストファイル内に含まれる単語の数をカウントし、テキストファイルに含まれる</p>
<p>単語の中で最も多く出現する単語と数を表示することを目的とします。</p>
<p>&nbsp;</p>
<h1>プログラム編</h1>
<h2>定数・変数の宣言</h2>
<p>単語の数を格納する変数を用意しておきます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">''' &lt;summary&gt;
    ''' 単語の数を格納する変数
    ''' &lt;/summary&gt;
    Private dictWord As Dictionary(Of String, Integer)</pre><p></p>
<h2>処理するファイルを選択する処理</h2>
<p>ファイルダイアログをボタンが押されたときに実行できるよう実装します。</p>
<p>ファイルダイアログに関しては、以下の記事をご参照ください。</p>
<p>&nbsp;</p>
<p>簡単にまとめています。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_35/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_7-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_7-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_7-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_7-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_35/" class="blog-card-title-link">【VB.Net】ファイルダイアログを使って指定のファイルを読み込んでみる</a></div><div class="blog-card-excerpt">ファイルダイアログを使って、パソコンに保存されている適当なファイルを操作する方法を紹介しています。ファイルダイアログとは、ファイルを保存する際に保存先等が設定できる小ウィンドウが開きます。このウィンドウをファイルダイアログと呼んでいます。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_35/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_35/" alt="" /></a></div><div class="blog-card-date">2020-11-14 11:35</div></div></div>
<p>&nbsp;</p>
<p>読込むファイルは今回は.txtのみを想定しております。
</p><pre class="urvanov-syntax-highlighter-plain-tag">''' &lt;summary&gt;
    ''' テキストファイル読込みボタン押下
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' ファイルダイアログを開く変数を作成しインスタンス化
        Dim testFileDialog As New OpenFileDialog()
        ' 各パラメータを設定していきます
        ' 最初に表示されるデフォルトのファイル名を設定
        testFileDialog.FileName = "default.txt"
        ' 最初に表示されるデフォルトのフォルダ名を設定
        testFileDialog.InitialDirectory = "C:/"
        ' 読込むファイルの種類を設定
        testFileDialog.Filter = "テキスト文書" &amp; "|" &amp; "*.txt"
        ' ファイルダイアログのタイトルを設定
        testFileDialog.Title = "読込みたいファイルを選択してください。"
        ' ファイルダイアログを閉じる前に現在のフォルダを復元するかしないか
        testFileDialog.RestoreDirectory = True
        ' ファイルダイアログを開く
        ' 読込みたいファイルを選択し、OKボタンが押されたら
        If testFileDialog.ShowDialog() = DialogResult.OK Then
            ' 出力ウィンドウ(VisualStudio)に選択されたファイル名を表示
            Console.WriteLine(testFileDialog.FileName)
            ' ファイルが選択されていない場合を考慮して
            If testFileDialog.FileName &lt;&gt; "" Then
                ' 単語の個数をカウントする処理をここに書きます。
            End If
        End If
    End Sub</pre><p>
&nbsp;</p>
<h2>単語をカウントする関数を作成</h2>
<p>戻り値として、単語のカウント結果をDictionary変数で返す関数を作成していきます。</p>
<p>&nbsp;</p>
<p>流れとしては、</p>
<ol>

<li>読込むファイルのパスを引数として渡します。</li>

<li>1で渡された引数のファイルを読込みます。</li>

<li>戻り値として返すDictionary変数を新たに宣言しておきます。</li>

<li>1行ずつ読み込んでいきます。</li>

<li>1行内に複数の単語がある場合を想定して、Splitメソッドで分割します。</li>

<li>単語ごとに宣言したDictionary変数に単語をキーに値を個数にして代入します。
この時、既にDictionaryにある場合は個数をインクリメントします。</li>
</ol>
<p>実際に関数の部分は、3～6になります。</p>
<p>&nbsp;</p>
<p>これをコードで書くと、以下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">''' &lt;summary&gt;
    ''' テキストファイル内の単語の数をカウントし、結果を返す関数
    ''' &lt;/summary&gt;
    ''' &lt;param name="filePath"&gt;読込みたいファイルのパス&lt;/param&gt;
    ''' &lt;returns&gt;&lt;/returns&gt;
    Private Function GetWordCount(ByVal filePath As String) As Dictionary(Of String, Integer)
        ' 1で渡された引数のファイルを読込みます。
        Dim sr As New System.IO.StreamReader(filePath)
        ' 戻り値として返すDictionary変数を新たに宣言しておきます。
        Dim dictResult As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)
        ' 1行ずつ読み込んでいきます。
        While sr.Peek &gt;= 0
            ' 1行内に複数の単語がある場合を想定して、Splitメソッドで分割します。
            Dim line() As String = sr.ReadLine.Split()
            For Each word As String In line
                ' 単語ごとに宣言したDictionary変数に単語をキーに値を個数にして代入します。
                If dictResult.ContainsKey(word) Then
                    ' 既にDictionaryにある場合は個数をインクリメントします。
                    dictResult(word) += 1
                Else
                    ' Dictionaryに存在しないなら1を代入
                    dictResult(word) = 1
                End If
            Next word
        End While

        ' ファイル処理解放
        sr.Close()
        sr.Dispose()
        sr = Nothing
        GC.Collect()

        ' 戻り値を返す
        Return dictResult
    End Function</pre><p>
作成した関数をファイルが選択されてからの処理の箇所に記述していきます。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">' ファイル内の単語の出現個数をカウント
                ' 単語の数を格納する変数に作成した関数の結果を代入します。
                dictWord = GetWordCount(testFileDialog.FileName)</pre><p>
&nbsp;</p>
<h2>一番多く含まれている単語と個数を表示</h2>
<p>dictWordに格納された単語と個数のペアから、</p>
<p>最大個数の単語を各テキストボックスに表示をします。</p>
<p>&nbsp;</p>
<p>dictWordから最大個数を見つけるには、<span class="red-under">Maxメソッドを使用</span>します。</p>
<p>今回は、個数の最大値を対象に、Maxメソッドを使います。</p>
<div class="information">Dictionary.Values.Max()  &#8216; 値の最大値を見つける</div>
<p>&nbsp;</p>
<p>これを使って、以下のように処理を書きます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">For Each dictTemp As KeyValuePair(Of String, Integer) In dictWord
                    If dictWord.Values.Max() = dictTemp.Value Then
                        ' 最大個数
                        textRec = textRec + " " + dictTemp.Key
                    End If
                Next dictTemp</pre><p>
Forループで最大個数のキーを変数textRecに代入していきます。</p>
<p>&nbsp;</p>
<p>最後に、変数textRecと最大個数の値を各テキストボックスに表示をしていきます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Me.TextBox1.Text = textRec                  ' 最大個数のキーをテキストボックスに表示
                Me.TextBox2.Text = dictWord.Values.Max()    ' 最大個数をテキストボックスに表示</pre><p>
&nbsp;</p>
<h2>全体コード</h2>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class WordCount
    ''' &lt;summary&gt;
    ''' 単語の数を格納する変数
    ''' &lt;/summary&gt;
    Private dictWord As Dictionary(Of String, Integer)

    ''' &lt;summary&gt;
    ''' テキストファイル内の単語の数をカウントし、結果を返す関数
    ''' &lt;/summary&gt;
    ''' &lt;param name="filePath"&gt;読込みたいファイルのパス&lt;/param&gt;
    ''' &lt;returns&gt;&lt;/returns&gt;
    Private Function GetWordCount(ByVal filePath As String) As Dictionary(Of String, Integer)
        ' 1で渡された引数のファイルを読込みます。
        Dim sr As New System.IO.StreamReader(filePath)
        ' 戻り値として返すDictionary変数を新たに宣言しておきます。
        Dim dictResult As Dictionary(Of String, Integer) = New Dictionary(Of String, Integer)
        ' 1行ずつ読み込んでいきます。
        While sr.Peek &gt;= 0
            ' 1行内に複数の単語がある場合を想定して、Splitメソッドで分割します。
            Dim line() As String = sr.ReadLine.Split()
            For Each word As String In line
                ' 単語ごとに宣言したDictionary変数に単語をキーに値を個数にして代入します。
                If dictResult.ContainsKey(word) Then
                    ' 既にDictionaryにある場合は個数をインクリメントします。
                    dictResult(word) += 1
                Else
                    ' Dictionaryに存在しないなら1を代入
                    dictResult(word) = 1
                End If
            Next word
        End While

        ' ファイル処理解放
        sr.Close()
        sr.Dispose()
        sr = Nothing
        GC.Collect()

        ' 戻り値を返す
        Return dictResult
    End Function



    ''' &lt;summary&gt;
    ''' テキストファイル読込みボタン押下
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' ファイルダイアログを開く変数を作成しインスタンス化
        Dim testFileDialog As New OpenFileDialog()
        ' 各パラメータを設定していきます
        ' 最初に表示されるデフォルトのファイル名を設定
        testFileDialog.FileName = "default.txt"
        ' 最初に表示されるデフォルトのフォルダ名を設定
        testFileDialog.InitialDirectory = "C:/"
        ' 読込むファイルの種類を設定
        testFileDialog.Filter = "テキスト文書" &amp; "|" &amp; "*.txt" &amp; "|" &amp; "CSVファイル" &amp; "|" &amp; "*.csv"
        ' ファイルダイアログのタイトルを設定
        testFileDialog.Title = "読込みたいファイルを選択してください。"
        ' ファイルダイアログを閉じる前に現在のフォルダを復元するかしないか
        testFileDialog.RestoreDirectory = True
        ' ファイルダイアログを開く
        ' 読込みたいファイルを選択し、OKボタンが押されたら
        If testFileDialog.ShowDialog() = DialogResult.OK Then
            ' 出力ウィンドウ(VisualStudio)に選択されたファイル名を表示
            Console.WriteLine(testFileDialog.FileName)
            ' ファイルが選択されていない場合を考慮して
            If testFileDialog.FileName &lt;&gt; "" Then
                ' ファイル内の単語の出現個数をカウント
                dictWord = GetWordCount(testFileDialog.FileName)
                ' 一番多い単語と個数をラベルに表示
                Dim textRec As String = ""
                For Each dictTemp As KeyValuePair(Of String, Integer) In dictWord
                    If dictWord.Values.Max() = dictTemp.Value Then
                        ' 最大個数のキーを代入
                        textRec = textRec + " " + dictTemp.Key
                    End If
                Next dictTemp

                Me.TextBox1.Text = textRec                  ' 最大個数のキーをテキストボックスに表示
                Me.TextBox2.Text = dictWord.Values.Max()    ' 最大個数をテキストボックスに表示
            End If
        End If
    End Sub

End Class</pre><p></p>
<h1><a href="https://px.a8.net/svt/ejp?a8mat=3BK7WA+78RVQQ+3GWO+6EU6P" rel="nofollow">
<img decoding="async" class="aligncenter" src="https://www24.a8.net/svt/bgt?aid=200817658438&amp;wid=001&amp;eno=01&amp;mid=s00000016188001077000&amp;mc=1" alt="" width="320" height="50" border="0"></a>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www19.a8.net/0.gif?a8mat=3BK7WA+78RVQQ+3GWO+6EU6P" alt="" width="1" height="1" border="0"></h1>
<h1>実行編</h1>
<p>作成したコードを実行していきます。</p>
<figure id="attachment_mmd_1613" class="wp-block-image aligncenter"><img decoding="async" width="811" height="277" src="https://dreamparadaisu.com/wp-content/uploads/2021/01/Word_Count_2.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">プログラム起動時の画面</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1616" class="wp-block-image aligncenter"><img decoding="async" width="680" height="373" src="https://dreamparadaisu.com/wp-content/uploads/2021/01/Word_Count_6.png" class="attachment-680x562 size-680x562" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">テキストファイルを読込みボタン押下時</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1617" class="wp-block-image aligncenter"><img decoding="async" width="796" height="268" src="https://dreamparadaisu.com/wp-content/uploads/2021/01/Word_Count_7.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">選択したテキストファイル内の単語カウント結果反映時</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>あるテキストファイル内の単語をカウントし、一番多い単語の数と単語を表示する方法をDictionaryを使って解説しました。</p>
<p>&nbsp;</p>
<p>単語やモノの数をカウントする際にDictionaryは非常に有用性のある型です。
こうした使い方もあるんだとイメージを抱いていただけたら嬉しいです。</p>
<p>&nbsp;</p>
<p>実際にこういった処理を書く必要なケースに出くわした場合、</p>
<p>思い出してもらえたらなと思います。</p>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="1594"
					data-ulike-nonce="4f801c8bb6"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_1594"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_50/">【VB.Net】Dictionaryを使ってテキストファイル内の単語数をカウント</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1594</post-id>	</item>
		<item>
		<title>【VB.Net】ファイルダイアログを使って指定のファイルを読み込んでみる</title>
		<link>https://dreamparadaisu.com/visualbasic_35/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_35</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sat, 14 Nov 2020 02:35:24 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[入門]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=1280</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、ファイルダイアログといった機能をつかって、 パソコンに保存されているファイルを選択し、 読み込んだ結果をコンボボックスに追加する方法を紹介していきます。 &#160; ファ...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_35/">【VB.Net】ファイルダイアログを使って指定のファイルを読み込んでみる</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、ファイルダイアログといった機能をつかって、</p>
<p>パソコンに保存されているファイルを選択し、</p>
<p>読み込んだ結果をコンボボックスに追加する方法を紹介していきます。</p>
<p>&nbsp;</p>
<p>ファイルダイアログって、</p>
<p>&#8220;こんなもんなんだ&#8221;といったイメージをつかんでいただけたらなと思います。</p>
<p>&nbsp;</p>
<p>ちなみに前回はこちら、</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_34/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/move_screen_3-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/11/move_screen_3-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/11/move_screen_3-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/11/move_screen_3-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_34/" class="blog-card-title-link">【VB.Net】Windowsフォーム間の画面遷移をしてみる</a></div><div class="blog-card-excerpt">2つのWindowsフォーム画面を用意し、フォーム画面間を遷移する簡単な方法を紹介しています。これまでは1つのフォーム画面で紹介することが多かったのですが、今後は複数画面を使った紹介もしていきたく簡単に記事にしてみました。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_34/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_34/" alt="" /></a></div><div class="blog-card-date">2020-11-11 22:35</div></div></div>
<p style="text-align: center"><a href="https://h.accesstrade.net/sp/cc?rk=0100o6vf00kusv" rel="nofollow"><img decoding="async" src="https://h.accesstrade.net/sp/rr?rk=0100o6vf00kusv" alt="Pro講座　短期集中" border="0"></a></p>
<h1>準備編：フォームの作成</h1>
<p>&nbsp;</p>
<p>今回は下のようなフォーム画面を作成します。</p>
<figure id="attachment_mmd_1281" class="wp-block-image aligncenter"><img decoding="async" width="808" height="479" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_1.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>ちなみに筆者の環境は、</p>
<ul>

<li>VisualStudio2019</li>

<li>Windows 10 64bit</li>

<li>.Net Framework 4.5.1</li>
</ul>
<p>です。</p>
<p>&nbsp;</p>
<h2>アプリケーションの目的</h2>
<p>ボタンを押すことでファイルダイアログが開き、適当なテキストファイルを選択します。</p>
<p>&nbsp;</p>
<p>選択したファイルを読み込み、ファイル内の内容をコンボボックスに出力することを</p>
<p>目的とします。</p>
<p>&nbsp;</p>
<p>→　あらかじめコンボボックスに表示したい内容をテキストファイルに持たせておく場合に</p>
<p>使えるテクニックになるかと思います。</p>
<p>&nbsp;</p>
<h1>プログラム編</h1>
<h2>ファイルダイアログとは</h2>
<p>ファイルダイアログは、ファイルを開く際や保存する際に</p>
<p>表示されるウィンドウのことを呼びます。</p>
<p>&nbsp;</p>
<p>例えば、下のようなウィンドウがファイルダイアログと呼ばれます。</p>
<figure id="attachment_mmd_1284" class="wp-block-image aligncenter"><img decoding="async" width="680" height="378" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_3.png" class="attachment-680x570 size-680x570" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<h2>ファイルダイアログを使ってみる</h2>
<p>ファイルダイアログを使うには、</p>
<p><span style="font-size: 18px"><strong><span class="marker-under">OpenFileDialogクラス</span></strong></span>を使います。</p>
<p>&nbsp;</p>
<p>使い方としては、</p>
<div class="sp-info">Dim 変数名 As New OpenFileDialog()</div>
<p>この作成した変数を使って、ファイルダイアログを開く際の</p>
<p>各パラメータを設定していきます。</p>
<p>&nbsp;</p>
<p>主なパラメータとしては、</p>
<ul>

<li>最初に表示されるデフォルトのファイル名</li>

<li>最初に表示されるデフォルトのフォルダ名</li>

<li>読込みたいファイルの種類</li>

<li>ファイルダイアログのタイトル</li>

<li>ファイルダイアログを閉じる前に現在のフォルダの復元可否</li>
</ul>
<p>になります。</p>
<p>&nbsp;</p>
<p>他にもパラメータはありますので、</p>
<p>個々の作成するアプリケーションによって都度設定をいじってみてください。</p>
<p>&nbsp;</p>
<p>ここまでを実際にコード化してみると下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestFileDialog
    ''' &lt;summary&gt;
    ''' ボタンを押したら
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' ファイルダイアログを開く変数を作成しインスタンス化
        Dim testFileDialog As New OpenFileDialog()
        ' 各パラメータを設定していきます
        ' 最初に表示されるデフォルトのファイル名を設定
        testFileDialog.FileName = "default.txt"
        ' 最初に表示されるデフォルトのフォルダ名を設定
        testFileDialog.InitialDirectory = "C:/"
        ' 読込むファイルの種類を設定
        testFileDialog.Filter = "テキスト文書" &amp; "|" &amp; "*.txt"
        ' ファイルダイアログのタイトルを設定
        testFileDialog.Title = "読込みたいファイルを選択してください。"
        ' ファイルダイアログを閉じる前に現在のフォルダを復元するかしないか
        testFileDialog.RestoreDirectory = True
    End Sub
End Class</pre><p>
このようになります。</p>
<p>&nbsp;</p>
<p>ここで、読み込むファイルの種類を設定に注目すると、</p>
<p>これはファイルダイアログのファイルの種類に表示される項目を設定しています。</p>
<p>&nbsp;</p>
<p>今回はテキストファイルだけを表示するように設定しています。</p>
<p>他にもcsvやtsvといったファイルを設定することも可能です。</p>
<p>&nbsp;</p>
<p>その場合は、ファイルごとに垂直バー(|)で区切ります。</p>
<p>例えば、csvファイルを追加したい場合
</p><pre class="urvanov-syntax-highlighter-plain-tag">' 読込むファイルの種類を設定 
testFileDialog.Filter = "テキスト文書" &amp; "|" &amp; "*.txt" &amp; "|" &amp; "CSVファイル" &amp; "|" &amp; "*.csv"</pre><p>
このように書くことでファイルの種類の項目を増やせます。</p>
<figure id="attachment_mmd_1285" class="wp-block-image aligncenter"><img decoding="async" width="680" height="171" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_6.png" class="attachment-680x258 size-680x258" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">ファイルの項目　一例</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BO5NS+6GSIB6+50+4Z3EHD" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www26.a8.net/svt/bgt?aid=201001384391&amp;wid=001&amp;eno=01&amp;mid=s00000000018030081000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www18.a8.net/0.gif?a8mat=3BO5NS+6GSIB6+50+4Z3EHD" alt="" width="1" height="1" border="0" />
<h3>選択されたファイルを読込み、コンボボックスへ追加</h3>
<p>最後に選択されたファイルを読込み、結果をコンボボックスへ追加していきます。</p>
<p>&nbsp;</p>
<p>ファイルの読み込みについては、</p>
<p><span style="font-size: 18px"><strong><span class="marker-under">System.IO.StreamReader</span></strong></span>を使います。</p>
<p>&nbsp;</p>
<p>これについては下の記事を参照ください。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_8/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/09/VBNet_Title_9-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/09/VBNet_Title_9-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/09/VBNet_Title_9-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/09/VBNet_Title_9-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_8/" class="blog-card-title-link">【VB.Net】テキストファイルを読み取ってコンボボックスへ</a></div><div class="blog-card-excerpt">VB.Netで指定したテキストファイルを読み取って出力したり、
複数行にわたるテキストファイルを読み取ってコンボボックスに格納する、やり方を紹介しています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_8/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_8/" alt="" /></a></div><div class="blog-card-date">2020-09-30 08:26</div></div></div>
<p>&nbsp;</p>
<p>ファイルダイアログ内で選択したファイルを読込むには、</p>
<p>開くボタンを押す必要があります。</p>
<p>&nbsp;</p>
<p>ここで<span class="red-under">押されたことをパソコンには検知させてあげないといけません</span>。</p>
<p>これについては、ボタンが押されたかどうかの結果を戻り値として返す</p>
<p><span style="font-size: 18px"><strong><span class="marker-under">DialogResult</span></strong></span>を使います。</p>
<p>&nbsp;</p>
<p>以前にメッセージボックスで記事にした際にも、紹介した内容になります。</p>
<p>詳細はこちらを参照ください。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_33/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/TestYesNo_6-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/11/TestYesNo_6-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/11/TestYesNo_6-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/11/TestYesNo_6-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_33/" class="blog-card-title-link">【VB.Net】メッセージボックスでどのボタンが押されたか知る方法</a></div><div class="blog-card-excerpt">メッセージボックスにはボタンを表示することができます。例えば、Yes/NoボタンやCancelボタンがあります。これらのボタンがメッセージボックスで押されたとき、どのボタンが押されたかを知る方法を一方的なYes/Noゲームを例に紹介しています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_33/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_33/" alt="" /></a></div><div class="blog-card-date">2020-11-10 07:32</div></div></div>
<p>&nbsp;</p>
<p>ファイルダイアログでは、押されたかどうかの戻り値を、</p>
<div class="sp-info">変数名.ShowDialog() → <span class="red-under">戻り値がDialogResult</span></div>
<p>でファイルダイアログが閉じられたときに戻り値を受け取るようにします。</p>
<p>&nbsp;</p>
<p>実際にコード化すると
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestFileDialog
    ''' &lt;summary&gt;
    ''' ボタンを押したら
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' ファイルダイアログを開く変数を作成しインスタンス化
        Dim testFileDialog As New OpenFileDialog()
        ' 各パラメータを設定していきます
        ' 最初に表示されるデフォルトのファイル名を設定
        testFileDialog.FileName = "default.txt"
        ' 最初に表示されるデフォルトのフォルダ名を設定
        testFileDialog.InitialDirectory = "C:/"
        ' 読込むファイルの種類を設定
        testFileDialog.Filter = "テキスト文書" &amp; "|" &amp; "*.txt"
        ' ファイルダイアログのタイトルを設定
        testFileDialog.Title = "読込みたいファイルを選択してください。"
        ' ファイルダイアログを閉じる前に現在のフォルダを復元するかしないか
        testFileDialog.RestoreDirectory = True
        ' ファイルダイアログを開く
        ' 読込みたいファイルを選択し、開く(OK)ボタンが押されたら
        If testFileDialog.ShowDialog() = DialogResult.OK Then
            ' 出力ウィンドウ(VisualStudio)に選択されたファイル名を表示
            Console.WriteLine(testFileDialog.FileName)

        End If

    End Sub
End Class</pre><p>
&nbsp;</p>
<p>最後に、コンボボックスへ追加する処理を</p>
<p>ファイルが選択された後に記述していきます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestFileDialog
    ''' &lt;summary&gt;
    ''' ボタンを押したら
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' ファイルダイアログを開く変数を作成しインスタンス化
        Dim testFileDialog As New OpenFileDialog()
        ' 各パラメータを設定していきます
        ' 最初に表示されるデフォルトのファイル名を設定
        testFileDialog.FileName = "default.txt"
        ' 最初に表示されるデフォルトのフォルダ名を設定
        testFileDialog.InitialDirectory = "C:/"
        ' 読込むファイルの種類を設定
        testFileDialog.Filter = "テキスト文書" &amp; "|" &amp; "*.txt" 
        ' ファイルダイアログのタイトルを設定
        testFileDialog.Title = "読込みたいファイルを選択してください。"
        ' ファイルダイアログを閉じる前に現在のフォルダを復元するかしないか
        testFileDialog.RestoreDirectory = True
        ' ファイルダイアログを開く
        ' 読込みたいファイルを選択し、開く(OK)ボタンが押されたら
        If testFileDialog.ShowDialog() = DialogResult.OK Then
            ' 出力ウィンドウ(VisualStudio)に選択されたファイル名を表示
            Console.WriteLine(testFileDialog.FileName)
            ' ファイルが選択されていない場合を考慮して
            If testFileDialog.FileName &lt;&gt; "" Then
                ' ファイルを読み込んでコンボボックスへ追加をしていく
                Dim sr As New System.IO.StreamReader(testFileDialog.FileName)
                ' ファイル内を1行ずつ読み込んで、結果をコンボボックスへ格納していく
                While sr.Peek &gt;= 0
                    Me.ComboBox1.Items.Add(sr.ReadLine)
                End While
            End If
        End If

    End Sub
End Class</pre><p>
これで完成です。</p>
<p>&nbsp;</p>
<p>アプリケーションを実行していきます。</p>
<figure id="attachment_mmd_1288" class="wp-block-image aligncenter"><img decoding="async" width="680" height="381" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_2-1.png" class="attachment-680x574 size-680x574" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">読込みボタンを押した後の画面です。</p>
<p>&nbsp;</p>
<p>今回は、sample_2.txtを読み込んでいきます。</p>
<figure id="attachment_mmd_1289" class="wp-block-image aligncenter"><img decoding="async" width="680" height="382" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_4-1.png" class="attachment-680x575 size-680x575" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">sample_2.txtを選択</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1290" class="wp-block-image aligncenter"><img decoding="async" width="790" height="469" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/testFileDialog_5.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">読込み完了後のコンボボックス</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BI0VE+4JQ84Y+0K+118G69" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www20.a8.net/svt/bgt?aid=200715242275&amp;wid=001&amp;eno=01&amp;mid=s00000000002006254000&amp;mc=1" alt="" width="320" height="50" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www16.a8.net/0.gif?a8mat=3BI0VE+4JQ84Y+0K+118G69" alt="" width="1" height="1" border="0" />
<h1>まとめ</h1>
<p>ファイルダイアログを使い方を例を交えて解説していきました。</p>
<p>イメージをつかんでいただければなと思います。</p>
<p>&nbsp;</p>
<p>ぜひ、アプリケーションを作る際の参考にしていただければ。</p>
<p>最後までご覧いただきありがとうございます。</p>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="1280"
					data-ulike-nonce="c0d02de5dc"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_1280"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_35/">【VB.Net】ファイルダイアログを使って指定のファイルを読み込んでみる</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1280</post-id>	</item>
		<item>
		<title>【VB.Net】テキストファイルを作る際にうっかりやらかしベスト3</title>
		<link>https://dreamparadaisu.com/visualbasic_31/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_31</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Thu, 05 Nov 2020 16:02:19 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[マインド]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=1228</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、自身がアプリケーションを作ったとして。その動作として テキストファイルを作る処理が書かれていたとします。 &#160; そんな時にでよくやってしまう、筆者のうっかりベスト3...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_31/">【VB.Net】テキストファイルを作る際にうっかりやらかしベスト3</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、自身がアプリケーションを作ったとして。その動作として</p>
<p>テキストファイルを作る処理が書かれていたとします。</p>
<p>&nbsp;</p>
<p>そんな時にでよくやってしまう、筆者のうっかりベスト3位を紹介します。</p>
<p>※リリースした時点で見つかるモノではなくデバッグ時に見つかるモノとしています。</p>
<p><span class="strike" style="font-size: 12px">リリースしてからだと、大惨事を招きかねないので</span></p>
<p>&nbsp;</p>
<p>ちなみに前回は、こちらの記事になります。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_30/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/3c5b82edef4e4c6d35499d3cd655f00f-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/11/3c5b82edef4e4c6d35499d3cd655f00f-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/11/3c5b82edef4e4c6d35499d3cd655f00f-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/11/3c5b82edef4e4c6d35499d3cd655f00f-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_30/" class="blog-card-title-link">【VB.Net】テキストファイルを使ったデータ管理の考え方</a></div><div class="blog-card-excerpt">データを管理する場合、データベースで管理が一般的だと思いますが、どうしてもコストに見合わない場合はありませんか？そんな時に1つの考えとして、テキストファイルで行うデータ管理について筆者の個人的な考えを元にサンプルを交えて紹介しています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_30/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_30/" alt="" /></a></div><div class="blog-card-date">2020-11-04 23:13</div></div></div>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BI0VE+4JQ84Y+0K+10CIHD" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www24.a8.net/svt/bgt?aid=200715242275&amp;wid=001&amp;eno=01&amp;mid=s00000000002006105000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www16.a8.net/0.gif?a8mat=3BI0VE+4JQ84Y+0K+10CIHD" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<p>それでは早速ベスト3を紹介していきます。</p>
<p>&nbsp;</p>
<h1>3位：エンコード間違い(文字化けなど)</h1>
<p>これ、意外とよくやってしまうんです……。</p>
<p>&nbsp;</p>
<p>間違えることで文字化けや、破損ファイルになったり……。</p>
<p>&nbsp;</p>
<p>これ有ると無いで、外部連携のアプリが動かなかったりっていうのが、実際にありました。</p>
<p>エンコードについては、下で補足していきます。</p>
<p>&nbsp;</p>
<h2>エンコードって？</h2>
<blockquote><b>エンコード</b>（<a title="英語" href="https://ja.wikipedia.org/wiki/%E8%8B%B1%E8%AA%9E">英</a>: <span lang="en">encode</span>）、<b>符号化</b>（ふごうか）とは、アナログ信号やデジタルデータに特定の方法で、後に元の（あるいは類似の）信号またはデータに戻せるような変換を加えることである。
<p style="text-align: right">引用元：Wikipedia</p>
</blockquote>
<p>エンコード(文字エンコード)にもいくつか種類があり、一般的には</p>
<ul>

<li>Shift_JIS(日本語)
CP932とも位置付けられる。(厳密には違うが広義(広く見て)としては同じ)
漢字を含む日本語を表現できる文字コードとして考え作られた規格</li>

<li>Unicode
全世界で使われる全ての文字を使えるようにと考えて作られた文字コードの規格
符号化文字集合といわれる。</li>

<li>UTF-8
世界で最もポピュラーな文字コードの規格
文字符号化式といわれ、UTF-16やUTF-32も同様</li>

<li>UTF-16</li>

<li>UTF-32</li>

<li>ASCII(アスキー)
符号化文字集合といわれる
半角英数字や一部記号などを使えるように作られた文字コード。</li>
</ul>
<p>&nbsp;</p>
<p>があります。いくつかは聞いたことがあるのではないでしょうか？</p>
<p>&nbsp;</p>
<p>例えば、<span class="marker-under">アプリではShift_JISでテキストファイルを作ったけど、</span>
<span class="marker-under">別のアプリではUnicodeで開いたら文字化けしてしまった</span>場合は、
おそらくエンコードでエラーが発生しているからということになります。</p>
<p>&nbsp;</p>
<p>(下イメージになります。)</p>
<figure id="attachment_mmd_1231" class="wp-block-image aligncenter"><img decoding="async" width="680" height="242" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/text_mind_2.png" class="attachment-680x364 size-680x364" alt="" loading="lazy" align="center" /></figure>
<p>これが起きないためには、事前に連携する外部アプリがある場合は、</p>
<p>外部アプリの要件に合わせてエンコードを合わせておきましょう。</p>
<p>&nbsp;</p>
<h1>2位：保存先が見つからない！！</h1>
<p>テキストファイルの保存先が見つからず、エラーが発生して止まってしまうことないですか？</p>
<p>&nbsp;</p>
<p>筆者、意外とありまして……だいたいこういったときは、</p>
<p>アプリ側で保存先を作ろうとする処理でうっかりとやってしまいます。</p>
<p>&nbsp;</p>
<p>これを回避するために、事前の保存先があるかチェックを行い、</p>
<p>なければ作成するといった対策を講じておきましょう。</p>
<p>&nbsp;</p>
<p>そうすることでデバッグ時のエラーを防げます。</p>
<p>&nbsp;</p>
<p>コードだと下のような感じになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class ukkari
    Private Sub Main()

        ' 保存先のチェック
        If System.IO.Directory.Exists("./Save") = False Then
            ' 無ければフォルダを作成する
            System.IO.Directory.CreateDirectory("./Save")
        End If

    End Sub
End Class</pre><p>
&nbsp;</p>
<p>保存先のチェックを</p>
<div class="sp-info">System.IO.Directory.Exists(&#8220;保存先&#8221;)</div>
<p>でチェックをしています。</p>
<p>&nbsp;</p>
<p>保存先を作成するには、</p>
<div class="sp-info">System.IO.Directory.CreateDirectory(&#8220;保存先&#8221;)</div>
<p>で作成しています。</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BOP7Y+9QOC36+2PEO+1I1AV5" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www21.a8.net/svt/bgt?aid=201026734589&amp;wid=001&amp;eno=01&amp;mid=s00000012624009076000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www11.a8.net/0.gif?a8mat=3BOP7Y+9QOC36+2PEO+1I1AV5" alt="" width="1" height="1" border="0" />
<h1>1位：別のプロセスで使われている！</h1>
<p>栄えある?!第1位は、<span class="red-under">別のプロセスで使われているが故</span>に、</p>
<p><span class="marker-under">テキストファイルを開くことができない</span>。や</p>
<p><span class="marker-under">テキストファイルに書き込めない</span>といった<span class="red-under">エラーに見舞われます</span>。</p>
<p>&nbsp;</p>
<p>これは、<span class="marker-under">アプリ上でテキストファイルのオブジェクトを解放ができていない</span>のが</p>
<p>最も多い原因といわれています。</p>
<p>&nbsp;</p>
<p>アプリ外では、<span class="marker-under">ユーザが該当のファイルを既に開いている場合</span>が当てはまります。</p>
<p>&nbsp;</p>
<p>意外と対策をしていそうでうっかりしていて対策を講じていないといった事が良くあります。</p>
<p>&nbsp;</p>
<p>実際に、筆者も最初出くわしたときはかなり焦りました……。
今ではだいたい原因がわかっているので、「うっかりだ」といった風になりますが……(-_-;)</p>
<p>&nbsp;</p>
<p>これを回避するには、<span style="font-size: 18px"><strong><span class="red-under">オブジェクトの解放を忘れない</span></strong></span>ことです。</p>
<p>&nbsp;</p>
<p>これに尽きます。</p>
<p>対策コードとしては下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class ukkari
    Private Sub Main()
        ' テキストファイルに書き込む
        Dim sw As New System.IO.StreamWriter("./Save/test.txt", True, System.Text.Encoding.UTF8)
        sw.WriteLine("こんにちは")

        ' オブジェクトの解放
        If sw IsNot Nothing Then
            sw.Close()
            sw.Dispose()
            sw = Nothing
            GC.Collect()
        End If

        ' 例えば、上記のオブジェクト解放を忘れると、
        ' 下の読み込みはエラーが発生します。

        ' テキストファイルを読み込む
        Dim sr As New System.IO.StreamReader("./Save/test.txt")
        Console.WriteLine(sr.ReadLine())

        ' オブジェクトの解放
        If sr IsNot Nothing Then
            sr.Close()
            sr.Dispose()
            sr = Nothing
            GC.Collect()
        End If

    End Sub
End Class</pre><p>
GC.Collect()は<span class="marker-under">外部ファイルを使って書き込み・</span></p>
<p><span class="marker-under">読み込み</span>をする場合は記述しておきましょう。</p>
<p>(不要になったメモリ領域を解放してくれるので。)</p>
<p>※　自動的に解放されるのですが、外部ファイルを操作する場合は、</p>
<p>別途記述する必要があったはずです。</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BK7WA+78RVQQ+3GWO+6N742" rel="nofollow">無料キャリアカウンセリング</a></p>
<p>&nbsp;</p>
<h2>おわりに</h2>
<p>今回は、筆者がよくやってしまうテキストファイル作成の際に</p>
<p>うっかりやらかしベスト3の紹介でした。</p>
<p>&nbsp;</p>
<p>今でもよくやってしまうので、気を付けなきゃです。</p>
<p>皆さんの参考になってなれば嬉しいです。</p>
<p>&nbsp;</p>
<p>最後に、VB.Netを勉強する上で参考になる書籍を下に取り上げています。</p>
<p>&nbsp;</p>
<p>良ければご参考までにご覧いただければと思います。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="1228"
					data-ulike-nonce="62aa7db28b"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_1228"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_31/">【VB.Net】テキストファイルを作る際にうっかりやらかしベスト3</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1228</post-id>	</item>
		<item>
		<title>【VB.Net】テキストファイルを使ったデータ管理の考え方</title>
		<link>https://dreamparadaisu.com/visualbasic_30/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_30</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Wed, 04 Nov 2020 14:13:51 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[マインド]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=1218</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; テキストファイルについては、読み込みから書き込みまでを以前の記事で紹介してきました。 &#160; 今回は、小規模なアプリケーションにおけるデータ管理の考え方として、 テキストファ...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_30/">【VB.Net】テキストファイルを使ったデータ管理の考え方</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>テキストファイルについては、読み込みから書き込みまでを以前の記事で紹介してきました。</p>
<p>&nbsp;</p>
<p>今回は、小規模なアプリケーションにおけるデータ管理の考え方として、</p>
<p>テキストファイルを使ったデータ管理について、</p>
<p>筆者の考えを紹介してみたく思ったので記事にします。</p>
<p>&nbsp;</p>
<p>ちなみにテキストファイルの操作については、下の記事をご参考ください。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_8/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/09/VBNet_Title_9-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/09/VBNet_Title_9-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/09/VBNet_Title_9-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/09/VBNet_Title_9-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_8/" class="blog-card-title-link">【VB.Net】テキストファイルを読み取ってコンボボックスへ</a></div><div class="blog-card-excerpt">VB.Netで指定したテキストファイルを読み取って出力したり、
複数行にわたるテキストファイルを読み取ってコンボボックスに格納する、やり方を紹介しています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_8/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_8/" alt="" /></a></div><div class="blog-card-date">2020-09-30 08:26</div></div></div>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_9/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_10-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_10-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_10-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_10-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_9/" class="blog-card-title-link">【VB.Net】テキストファイルを作成するやり方</a></div><div class="blog-card-excerpt">テキストファイルを作成する方法を、フォーム上のボタンが押された後にテキストボックスに入力された文字を書き込むといった例を交えて紹介しています。プログラム上でファイルを作成する方法はいくつかありますが、その中でも一般的に使われているだろう方法を載せています。これをきっかけにイメージをつかんでいただけたらなと思います。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_9/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_9/" alt="" /></a></div><div class="blog-card-date">2020-10-01 19:55</div></div></div>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_17/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_10-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_10-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_10-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_10-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_17/" class="blog-card-title-link">【VB.Net】複数のテキストファイルを読み込み、1つにまとめてみる</a></div><div class="blog-card-excerpt">複数のテキストファイルを読み込んで、1つのファイルとして新たにファイルを作成したいとき、そんなときに使える方法を例を交えて紹介しています。ファイル操作を学んでアプリケーション開発のステップアップを目指していただければと思います。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_17/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_17/" alt="" /></a></div><div class="blog-card-date">2020-10-13 21:06</div></div></div>
<p>&nbsp;</p>
<p>前回の記事はこちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_29/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_7-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_7-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_7-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_7-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_29/" class="blog-card-title-link">【VB.Net】iniファイルへ値を書き込む</a></div><div class="blog-card-excerpt">iniファイルという設定ファイルについて、今回は書き込む方法を例を交えて紹介しています。アプリケーション実行中にiniファイルへ書き込みを行い設定を変更したい場合などに使えるので覚えていただけたらなと思います。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_29/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_29/" alt="" /></a></div><div class="blog-card-date">2020-11-03 23:57</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BI0VE+4JQ84Y+0K+10CIHD" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www24.a8.net/svt/bgt?aid=200715242275&amp;wid=001&amp;eno=01&amp;mid=s00000000002006105000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www16.a8.net/0.gif?a8mat=3BI0VE+4JQ84Y+0K+10CIHD" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1>テキストファイルは総称</h1>
<p>テキストファイルについては、</p>
<p><span class="marker-under">ファイルの拡張子に<span style="font-size: 18px"><strong>.txt</strong></span>とつくファイルを一般的にテキストファイルと呼んでいます</span>。</p>
<p>&nbsp;</p>
<p>各OSによって</p>
<ul>

<li>Windowsであればメモ帳で作成ができます。</li>

<li>LinuxだとLeafPad等で作成することもできます。</li>

<li>Macだと標準インストールされているテキストエディットで作ることができます。
デフォルトでは、rtf形式になりますが標準テキストにフォーマットを変更することで、txt形式で保存することができます。</li>
</ul>
<p>また、テキストファイルは.txtで表すといいましたが、</p>
<p>&nbsp;</p>
<p>筆者としては、</p>
<p>総称として読ばれる名称だと考えています。</p>
<p>&nbsp;</p>
<p>例えば、<span class="marker-under"><span style="font-size: 18px"><strong>.csv</strong></span>の拡張子を持つファイルはCSVファイル</span>といわれます。</p>
<p>これも元をたどればテキストファイルです。</p>
<p>&nbsp;</p>
<p>同様に設定ファイルのiniファイルも</p>
<p>テキストファイルです。</p>
<p>&nbsp;</p>
<p>したがって、下のようなイメージが考えられます。</p>
<figure id="attachment_mmd_1220" class="wp-block-image aligncenter"><img decoding="async" width="680" height="504" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/4f22c5402894a1968de547608a0af7df.png" class="attachment-680x759 size-680x759" alt="" loading="lazy" align="center" /></figure>
<p>実は、これらみんな元はテキストファイルです。</p>
<p>これら拡張子なんかはまとめてテキストファイルと呼ぶようにしています。</p>
<p>&nbsp;</p>
<p>でないと、プログラムを開発する際に、<span class="strike">相手先と一向に話が進まないといったこともあるので……</span>こうした経験から総称で呼ぶようにしています。</p>
<p>&nbsp;</p>
<p>また、ファイル形式についてわからないといった方も</p>
<p>当然いるのでわかりやすいようにといった意味もあります。</p>
<p>&nbsp;</p>
<h1>テキストファイルの使い方・使われ方</h1>
<p>&nbsp;</p>
<p>アプリケーションによっては、テキストファイルを使って</p>
<p>アプリケーションの設定を書き込んでおくファイルや</p>
<p>プログラムのログを書きだしておくファイルに使われたりします。</p>
<p>&nbsp;</p>
<p>だいたい、下のような使われ方が多いです。</p>
<ul>

<li>設定ファイル</li>

<li>プログラムログファイル</li>

<li>データ保存用</li>
</ul>
<p>などが一般出来ではないかと思います。</p>
<p>&nbsp;</p>
<p>その中で、<span class="marker-under">設定ファイルについては、iniファイルで残す</span>といったことを以前に紹介しました。</p>
<p>プログラムログについては、<span class="marker-under">一般的にファイルの拡張子を<span style="font-size: 18px"><strong>.log</strong></span></span>にして保存をします。</p>
<p>※これについては別記事で紹介していきます。</p>
<p>&nbsp;</p>
<p><span class="marker-under">データ保存用については、<span style="font-size: 18px"><strong>.txt</strong></span>や<span style="font-size: 18px"><strong>.csv</strong></span>そして<strong><span style="font-size: 18px">.tsv</span></strong>で残されることが多い</span>です。</p>
<p>&nbsp;</p>
<p>もちろん.xlsxや.xlsで保存する場合もありますが、</p>
<p>これはExcel独自のファイル形式になるので今回は省いて考えます。</p>
<p>(※扱い方も特殊なので……また、別途紹介の場を設けます。)</p>
<p>&nbsp;</p>
<p>使い方の中でもデータ保存用について、</p>
<p>今回はデータ管理の考え方なのでメインに触れていきます。</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BK7WA+78RVQQ+3GWO+60H7L" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www28.a8.net/svt/bgt?aid=200817658438&amp;wid=001&amp;eno=01&amp;mid=s00000016188001010000&amp;mc=1" alt="" width="336" height="280" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www11.a8.net/0.gif?a8mat=3BK7WA+78RVQQ+3GWO+60H7L" alt="" width="1" height="1" border="0" />
<h1></h1>
<h1>データ管理にテキストファイルを使う</h1>
<p>アプリケーションによっては、センサや計測装置から取得したデータを</p>
<p>保存するアプリケーションもあるかと思います。</p>
<p>もしくはこれから作る可能性が出てくるかもしれません。</p>
<p>&nbsp;</p>
<p>ここではセンサや計測装置といったハードウェアから取得されるデータと挙げましたが、</p>
<p>&nbsp;</p>
<p>データの中には、これ以外にも例として、</p>
<ul>

<li>学校在籍生徒のデータ</li>

<li>都道府県ごとの収穫物収穫量</li>

<li>時間別通行量</li>

<li>年齢別好きな食べ物</li>
</ul>
<p>ようなデータがあります。</p>
<p>(偏った見方はありますが、基本的にデータだらけです。)</p>
<p>&nbsp;</p>
<p>これらデータを基本的には紙媒体を使用して記録を私たちはしています。</p>
<p>&nbsp;</p>
<p>ですが、<span class="red-under">最近ではペーパーレスの取り組みなどが顕著になってきたのではないでしょうか</span>。</p>
<p>そうした時、<span class="red-under">考えつくのがアプリで管理していったらいいじゃないか？</span>ではないでしょうか。</p>
<p>&nbsp;</p>
<p>だいたいは<span class="red-under">アプリによってデジタル的に管理する</span>といった意見が多いかと思います。</p>
<p>&nbsp;</p>
<p>もう少し深く考えると、アプリで管理するにはどうやって管理したらよいか？</p>
<p>といった疑念が生じるかと思います。</p>
<p>(アプリを作成する側は抱かれるのではないでしょうか？)</p>
<p>&nbsp;</p>
<p>一般的にアプリで管理していくには、</p>
<ul>

<li>サーバ+ミドルソフトウェア(データベース)を活用したデータ管理</li>

<li>クラウド+ミドルソフトウェア(データベース)を活用したデータ管理</li>

<li>アプリケーションを導入したパソコン上でデータを管理</li>
</ul>
<p>が挙げられます。</p>
<p>&nbsp;</p>
<p>最初の2つは、大規模なデータを残す場合に活用されます。</p>
<p>サーバとクラウドで管理する方法が違いますが考え方は同じです。</p>
<p>&nbsp;</p>
<p>データをサーバで管理するかクラウドでするかの違いです。</p>
<p>大きくは、<span class="marker-under"><strong>コスト</strong>や<strong>スペース</strong>、<strong>保守・カスタマイズ性</strong></span>などの比較パラメータがあります。</p>
<p>&nbsp;</p>
<p>これらパラメータに基づいて、何が良いか見極めていきます。</p>
<p>※　ここでは詳しく紹介はしません。</p>
<p>&nbsp;</p>
<p>一方で、アプリケーションを導入したパソコン上で管理する最もコストがかからずできる方法として、筆者もよく使うテキストファイルにおけるデータ管理です。</p>
<p>&nbsp;</p>
<p>ただし、<strong><span class="red-under">これはあくまで小規模なデータを扱うアプリケーション且つ</span></strong></p>
<p><strong><span class="red-under">アプリを導入したパソコン上でしかデータを管理しない場合にのみ使える考え方</span></strong>です。</p>
<p>&nbsp;</p>
<p>ですので、<strong><span class="red-under">大規模データを扱う場合は、</span></strong></p>
<p><strong><span class="red-under">当然サーバもしくはクラウドでデータ管理をするためのアプリケーションを開発</span></strong>します。</p>
<p>&nbsp;</p>
<p>じゃあ、<span class="marker-under">小規模なデータを扱うアプリや</span></p>
<p><span class="marker-under">パソコン上でしかデータ管理しないってどんなのがあるの？</span></p>
<p>&nbsp;</p>
<p>これには、偏ってしまいますが、</p>
<ul>

<li>何らかの部品のOK/NG判定のデータ</li>

<li>インターネットへの接続環境がない場所でのデータ取得・管理</li>

<li>点検リスト</li>
</ul>
<p>といったものを挙げておきます。</p>
<p>&nbsp;</p>
<p>その中で、部品のOK/NGのような場合をイメージしたアプリケーションを簡易的に作成してみたので貼っておきます。</p>
<p>&nbsp;</p>
<p>イメージだけでもつかんでもらえたらなと思います。</p>
<p>まず下のようなフォーム画面を作成しました。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1221" class="wp-block-image aligncenter"><img decoding="async" width="813" height="488" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/533bef2f0798ddb0f67f19fce65c065f.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<h1>アプリケーションの動作例</h1>
<p>&nbsp;</p>
<ol>

<li>スタートボタンを押すと1秒おきに計測データが取得され、判定(OK/NG)を行います。</li>

<li>ストップボタンを押すと計測データと判定結果をテキストファイルに出力します。</li>

<li>保存されているデータを表示ボタンを押すことで、
当日分の検査データがボタン上の領域に表示されます。</li>
</ol>
<p>&nbsp;</p>
<p>このような動作をします。</p>
<p>&nbsp;</p>
<p>実際に実行した例を下に表示します。</p>
<figure id="attachment_mmd_1222" class="wp-block-image aligncenter"><img decoding="async" width="794" height="477" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/604bb38bbcc61b1937b45f41228278cf.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>このようなアプリケーションの場合は、</p>
<p>テキストファイルでのデータ管理でも問題ないかと思います。</p>
<p>&nbsp;</p>
<p>ちなみにコードはこちら、簡易的に書いています。</p>
<p>イメージつかみ程度で参考にしていただけたら嬉しいです。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestTextFile

    ' データ保存フォルダパス
    Private Const SAVE_DIR As String = "./Save"
    ' データ保存ファイル名
    Private Const SAVE_FILE As String = "testData.txt"

    ' データ保存変数
    Private saveDataAry As List(Of String) = Nothing

    ' 乱数変数
    Private random As Random = Nothing


    ''' &lt;summary&gt;
    ''' スタートボタン押されたら
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ' テキストファイルに保存するデータ配列変数の初期化
        saveDataAry = New List(Of String)

        ' 乱数変数インスタンス化
        random = New Random(1000)

        ' タイマースタート
        Me.Timer1.Enabled = True
        Me.Timer1.Interval = 1000
        Me.Timer1.Start()

    End Sub

    ''' &lt;summary&gt;
    ''' 指定秒ごとに処理
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        ' 0以上100未満の乱数を生成
        Dim data As Integer = random.Next(100)
        ' 0以上2未満の乱数を生成
        Dim judgeData As Integer = random.Next(0, 2)
        ' OK or NGに置き換え
        Dim strJudge As String
        If judgeData = 0 Then strJudge = "OK"
        If judgeData = 1 Then strJudge = "NG"

        ' 配列変数へ格納
        saveDataAry.Add(Now.ToString("yyyy/MM/dd HH:mm:ss") &amp; "," &amp; CStr(data) &amp; "," &amp; strJudge)
    End Sub

    ''' &lt;summary&gt;
    ''' ストップボタン押したら
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        ' タイマー停止
        Me.Timer1.Stop()
        Me.Timer1.Enabled = False

        ' フォルダチェック
        If System.IO.Directory.Exists(SAVE_DIR) = False Then
            System.IO.Directory.CreateDirectory(SAVE_DIR)
        End If

        ' ファイル名作成
        Dim writeFile As String = SAVE_DIR + "/" + Now.ToString("yyyyMMdd") + "_" + SAVE_FILE

        ' ファイルへ書き込む文字列作成
        Dim strText As New System.Text.StringBuilder
        For Each text As String In saveDataAry
            strText.Append(text + vbCrLf)
        Next text

        ' ファイルの書き込み
        Dim sw As New System.IO.StreamWriter(writeFile, True, System.Text.Encoding.UTF8)
        sw.Write(strText.ToString)

        ' オブジェクト解放
        If sw IsNot Nothing Then
            sw.Close()
            sw.Dispose()
            sw = Nothing
            GC.Collect()
        End If

    End Sub

    ''' &lt;summary&gt;
    ''' 保存されたデータを表示ボタンを押したら
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If Me.Timer1.Enabled = False Then
            ' 当日分のテキストファイルをチェック
            ' ファイル名作成
            Dim readFile As String = SAVE_DIR + "/" + Now.ToString("yyyyMMdd") + "_" + SAVE_FILE
            If System.IO.File.Exists(readFile) Then
                ' テキストファイルを読み取る
                Dim sr As New System.IO.StreamReader(readFile)

                ' データテーブル変数作成
                Dim dTable As New DataTable
                dTable.Columns.Add("DATA_1")
                dTable.Columns.Add("DATA_2")
                dTable.Columns.Add("DATA_3")

                While sr.Peek &gt;= 0
                    If sr.ReadLine &lt;&gt; "" Then
                        Dim line As String() = sr.ReadLine.Split(","c)

                        dTable.Rows.Add()
                        dTable.Rows(dTable.Rows.Count - 1).Item("DATA_1") = line(0)
                        dTable.Rows(dTable.Rows.Count - 1).Item("DATA_2") = line(1)
                        dTable.Rows(dTable.Rows.Count - 1).Item("DATA_3") = line(2)
                    End If
                End While

                ' オブジェクト解放
                If sr IsNot Nothing Then
                    sr.Close()
                    sr.Dispose()
                    sr = Nothing
                    GC.Collect()
                End If

                ' 履歴表示
                Me.DataGridView1.DataSource = dTable

            End If
        End If
    End Sub
End Class</pre><p></p>
<h1></h1>
<h1>まとめ</h1>
<p>&nbsp;</p>
<p>テキストファイルでデータ管理をする場合は、</p>
<p><span class="red-under"><strong>小規模なデータであまり重要性が高くないデータを管理</strong></span></p>
<p><span class="red-under"><strong>どうしてもデータベースのコストが出せない場合</strong></span></p>
<p>などではないでしょうか。</p>
<p>&nbsp;</p>
<p>テキストファイルでデータ管理の運用をする場合は、</p>
<p>当たり前のことですが<span class="red-under"><strong>バックアップ</strong>や<strong>ミラーリング</strong>をして、</span></p>
<p><span class="red-under">必ずテキストファイルの複製を用意</span>しておきましょう。</p>
<p>&nbsp;</p>
<p>筆者は、テキストファイルで管理をしていく場合が多いので、</p>
<p>良ければ手段としてテキストファイルでデータ管理をしていくことを</p>
<p>アイデアとして持ってもらえたらなと思います。</p>
<p>&nbsp;</p>
<p>ご覧いただきありがとうございます。</p>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="1218"
					data-ulike-nonce="f83bfaba19"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_1218"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_30/">【VB.Net】テキストファイルを使ったデータ管理の考え方</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1218</post-id>	</item>
		<item>
		<title>【VB.Net】iniファイルへ値を書き込む</title>
		<link>https://dreamparadaisu.com/visualbasic_29/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_29</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Tue, 03 Nov 2020 14:57:06 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[入門]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=1201</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、iniファイルへ書き込む方法を例を交えて紹介していきます。 &#160; iniファイルを読み込む方法については、下の記事で紹介しています。 【VB.Net】設定ファイル(...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_29/">【VB.Net】iniファイルへ値を書き込む</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、iniファイルへ書き込む方法を例を交えて紹介していきます。</p>
<p>&nbsp;</p>
<p>iniファイルを読み込む方法については、下の記事で紹介しています。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_13/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_14-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_14-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_14-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_14-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_13/" class="blog-card-title-link">【VB.Net】設定ファイル(iniファイル)を読込む</a></div><div class="blog-card-excerpt">iniファイルと呼ばれる設定ファイルについてVB.Netで読み取る方法を例を交えて紹介しています。読み込む前にiniファイルの作成から細かくわけて紹介しているので、全体をざっくりと知ってみたい方や読み込むとこだけ知りたい方どちらでもOKです。アプリケーションを作るうえで必要なスキルにもなりうるのでこれを機会に!</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_13/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_13/" alt="" /></a></div><div class="blog-card-date">2020-10-07 01:12</div></div></div>
<p>&nbsp;</p>
<p>ちなみに前回はこちら、</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_28/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/zip_10-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/11/zip_10-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/11/zip_10-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/11/zip_10-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_28/" class="blog-card-title-link">【VB.Net】zipファイルを解凍せずに読み取ってみた</a></div><div class="blog-card-excerpt">zipファイルの操作をVBで行いたいと思ったことはありませんか？今回は、Zipファイルを解凍せずに読み取って、テキストボックスに表示する方法を紹介しています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_28/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_28/" alt="" /></a></div><div class="blog-card-date">2020-11-01 18:48</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www27.a8.net/svt/bgt?aid=220503664100&amp;wid=001&amp;eno=01&amp;mid=s00000015623001010000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www13.a8.net/0.gif?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1>準備編：フォームの作成</h1>
<p>今回下のようなフォーム画面を作成します。</p>
<figure id="attachment_mmd_1202" class="wp-block-image aligncenter"><img decoding="async" width="814" height="486" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_1.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>ちなみに筆者の環境は、</p>
<ul>

<li>VisualStudio2019</li>

<li>Windows 10 64bit</li>

<li>.Net Framework 4.5.1</li>
</ul>
<p>です。</p>
<h1>準備編：iniファイルの作成(テキストファイル)</h1>
<p>iniファイルを任意の場所に作成します。</p>
<p>&nbsp;</p>
<p>この場所については、<span class="red-under">各自のパソコンの環境に合わせて作成ください</span>。</p>
<p>&nbsp;</p>
<p>筆者は今回、下のようなiniファイルを作成しました。</p>
<figure id="attachment_mmd_1203" class="wp-block-image aligncenter"><img decoding="async" width="753" height="416" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_2.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<h2>アプリケーションの目的</h2>
<p>ボタンを押したら、セクション名とキー名、書き込みたい文字列が入力されていれば</p>
<p>iniファイルへ書き込みが出来ることを目的とします。</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BQCQ7+CNGMK2+CO4+ZYD81" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www21.a8.net/svt/bgt?aid=201103855765&amp;wid=001&amp;eno=01&amp;mid=s00000001642006039000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www10.a8.net/0.gif?a8mat=3BQCQ7+CNGMK2+CO4+ZYD81" alt="" width="1" height="1" border="0" />
<h1>プログラム編</h1>
<p>ここからは、実際にプログラムを書いていきます。</p>
<h2>Iniファイルへ書き込む準備</h2>
<p>まずIniファイルへ書き込む前に、書き込むために用意されているWIN API関数を宣言します。</p>
<p>&nbsp;</p>
<p>APIとは、</p>
<blockquote>アプリケーションプログラミングインタフェース（<span lang="en">API</span>、英: <span lang="en">Application Programming Interface</span>）<sup id="cite_ref-1" class="reference"></sup>とは、広義ではソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様である。
<p style="text-align: right">引用元：<a href="https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9">Wikipedia</a></p>
</blockquote>
<p>と説明されています。</p>
<p>&nbsp;</p>
<p>APIを使うことで、すでに用意されているサービスを使えるため、<span class="marker-under">自身でプログラムする必要が省け、開発効率が上がります</span>。</p>
<p>&nbsp;</p>
<p>最近では、フリーで公開されているAPIも増えてきたので、</p>
<p>開発工数が大幅に削減できるようになりました。</p>
<p>&nbsp;</p>
<p>APIを例えば、企業が公開するメリットとしては、<span class="marker-under">個々の開発者に自社の製品を使ったアプリケーションを個々が作ることで製品の認知度向上からの企業のサービス利用向上につながるといった狙いがあると筆者は考えています</span>。</p>
<p>&nbsp;</p>
<p>企業では、FacebookやLINE、Amazon、楽天などがAPIを公開しています。</p>
<p>興味がある方は、一度調べてみるとよいと思います。様々なAPIが公開されていますよ。</p>
<p>&nbsp;</p>
<p>iniファイルへ書き込むための準備は下のようなコードになります。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Imports System.Runtime.InteropServices

Public Class TestWriteIni
    ' iniファイルの場所
    Private Shared INIFILEPATH As String = "./ini/TestWriteIni.ini"

    ' ------------------------------------------------------
    ' ini ファイルへ書き込み
    ' ------------------------------------------------------
    &lt;DllImport("Kernel32.dll")&gt;
    Private Shared Function WritePrivateProfileString(
                    ByVal lpAppName As String,                   ' セクション名
                    ByVal lpKeyName As String,                   ' キー名
                    ByVal lpString As String,                        ' 書き込む文字列
                    ByVal lpFileName As String) As Integer   ' iniファイル名
    End Function

    ''' &lt;summary&gt;
    ''' INIファイルに書き込みする
    ''' &lt;/summary&gt;
    ''' &lt;param name="lpAppName"&gt;セクション&lt;/param&gt;
    ''' &lt;param name="lpKeyName"&gt;キー&lt;/param&gt;
    ''' &lt;param name="lpString"&gt;書き込む文字列&lt;/param&gt;
    Public Shared Sub WriteIniString(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpString As String)
        Call WritePrivateProfileString(lpAppName, lpKeyName, lpString, INIFILEPATH)
    End Sub


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    End Sub
End Class</pre><p></p>
<p>&nbsp;</p>
<h2>入力がされているか確認</h2>
<p><span class="red-under">書き込む内容が入力されているか確認</span>をするようにします。</p>
<p>&nbsp;</p>
<p>入力されていなければ処理をしないコードを下のように書きます。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' テキストボックスに入力されているか確認する
        If Me.TextBox1.Text &lt;&gt; "" And
            Me.TextBox2.Text &lt;&gt; "" And
            Me.TextBox3.Text &lt;&gt; "" Then

            
        End If
    End Sub</pre><p></p>
<p>&nbsp;</p>
<h2>iniファイルへ書き込んでいく</h2>
<p><span class="red-under">テキストボックスに入力されている値を各変数に代入</span>し、</p>
<p>これら変数を使って、iniファイルへ書き込む関数を呼び出し実行します。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。</p>
<p></p><pre class="urvanov-syntax-highlighter-plain-tag">Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' テキストボックスに入力されているか確認する
        If Me.TextBox1.Text &lt;&gt; "" And
            Me.TextBox2.Text &lt;&gt; "" And
            Me.TextBox3.Text &lt;&gt; "" Then

            ' それぞれ変数に格納していく
            Dim lpAppName As String = Me.TextBox1.Text
            Dim lpKeyName As String = Me.TextBox2.Text
            Dim lpString As String = Me.TextBox3.Text

            ' Iniファイルへ 書き込んでいく
            Call WriteIniString(lpAppName, lpKeyName, lpString)
        End If</pre><p></p>
<p>実際に実行してボタンを押し、動作を確認しましょう。</p>
<p>&nbsp;</p>
<p>下図に実行例を示します。</p>
<figure id="attachment_mmd_1204" class="wp-block-image aligncenter"><img decoding="async" width="797" height="472" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_3.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">各項目に入力をしています。</p>
<p>&nbsp;</p>
<p>実際に書きこまれたiniファイルが下になります。</p>
<figure id="attachment_mmd_1205" class="wp-block-image aligncenter"><img decoding="async" width="754" height="208" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_4.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>ここで<span class="marker-under">既にiniファイルにセクション名とキーが書き込まれていて、</span></p>
<p><span class="marker-under">値が違う場合は<span style="font-size: 18px"><strong>更新</strong></span>がされます</span>。</p>
<p>&nbsp;</p>
<p>例えば、既にセクション&#8221;TEST&#8221;のキー&#8221;Mode&#8221;の値が1のとき</p>
<p>これを0に変更したい場合は下のようにします。</p>
<figure id="attachment_mmd_1206" class="wp-block-image aligncenter"><img decoding="async" width="794" height="474" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_5.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>更新されたiniファイルがこちらです。</p>
<figure id="attachment_mmd_1207" class="wp-block-image aligncenter"><img decoding="async" width="749" height="122" src="https://dreamparadaisu.com/wp-content/uploads/2020/11/ini_write_6.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>今回は、iniファイルへセクション名、キー、</p>
<p>値を書き込む方法について例を交えて解説していきました。</p>
<p>&nbsp;</p>
<p>iniファイルはアプリケーションの設定などを書き込んでおくファイルです。</p>
<p>アプリケーション動作中に設定を変更する際などに今回の方法は使えますので、</p>
<p>ぜひ活用してみてください。</p>
<p>&nbsp;</p>
<p>ご覧いただきありがとうございます。</p>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<h3>VB.Netをしっかり学びたいなら</h3>
<p>VB.Netは独学でも可能ですが、マンツーマンで学べる学習サービスを使うと習得が早くなります。<br />
こちらの記事で、VB.NetやPythonも学べるサービスを比較しています。</p>
<p>&#x1f449; <a href="https://dreamparadaisu.com/study_services/">プログラミング学習サービス比較記事はこちら</a></p>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="1201"
					data-ulike-nonce="d830db8d71"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_1201"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_29/">【VB.Net】iniファイルへ値を書き込む</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1201</post-id>	</item>
		<item>
		<title>【VB.Net】更新日時が新しいファイルのタイムスタンプを取得する</title>
		<link>https://dreamparadaisu.com/visualbasic_23/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_23</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Fri, 23 Oct 2020 11:44:23 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[入門]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=1073</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、ファイルのタイムスタンプとして分類される更新日時に注目し、 ファイルの更新日時のタイムスタンプを取得する方法を例を交えて紹介していきます。 &#160; 今回例として作成す...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_23/">【VB.Net】更新日時が新しいファイルのタイムスタンプを取得する</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/study_kids_programming_001/" rel="bookmark" title="【比較】オンラインと通学どっちがいい？小学生のためのプログラミング体験教室">【比較】オンラインと通学どっちがいい？小学生のためのプログラミング体験教室</a></li>
<li><a href="https://dreamparadaisu.com/study_kids_programming_002/" rel="bookmark" title="【調査レビュー】小学生向けプログラミング教室｜無料体験で学べる内容まとめ">【調査レビュー】小学生向けプログラミング教室｜無料体験で学べる内容まとめ</a></li>
<li><a href="https://dreamparadaisu.com/study_tech_jim/" rel="bookmark" title="【レビュー】テックジム教材一括購入プランのメリット・デメリット徹底解説">【レビュー】テックジム教材一括購入プランのメリット・デメリット徹底解説</a></li>
<li><a href="https://dreamparadaisu.com/digitane_review/" rel="bookmark" title="【調査レビュー】デジタネ（旧D-SCHOOLオンライン）とは？小中学生が自宅で学べるプログラミング教材">【調査レビュー】デジタネ（旧D-SCHOOLオンライン）とは？小中学生が自宅で学べるプログラミング教材</a></li>
<li><a href="https://dreamparadaisu.com/study_flap_design/" rel="bookmark" title="未経験からSNSデザイナーへ！Flap DESIGNで在宅×副業スキルを3ヶ月で習得">未経験からSNSデザイナーへ！Flap DESIGNで在宅×副業スキルを3ヶ月で習得</a></li>
</ol>
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、ファイルのタイムスタンプとして分類される更新日時に注目し、</p>
<p>ファイルの更新日時のタイムスタンプを取得する方法を例を交えて紹介していきます。</p>
<p>&nbsp;</p>
<p>今回例として作成するアプリケーションは、</p>
<p>あるフォルダに複数のファイルが保存されています。</p>
<p>&nbsp;</p>
<p>この中から最新の更新日時のファイルを見つけ、指定のボックスにファイル名を表示する</p>
<p>といったアプリケーションを作成していきます。</p>
<p>&nbsp;</p>
<p>ちなみに前回はこちら、</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_22/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/CheckBox_Test_4-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/CheckBox_Test_4-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/CheckBox_Test_4-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/CheckBox_Test_4-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_22/" class="blog-card-title-link">【VB.Net】チェックボックスの使い方</a></div><div class="blog-card-excerpt">チェックボックス(CheckBox)はアンケートやいくつかある項目から該当の項目もしくは複数の項目を選択する際に使用されます。ここではチェックボックスの使い方を例を交えて紹介しています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_22/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_22/" alt="" /></a></div><div class="blog-card-date">2020-10-23 00:56</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BI0VE+4JQ84Y+0K+10CIHD" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www24.a8.net/svt/bgt?aid=200715242275&amp;wid=001&amp;eno=01&amp;mid=s00000000002006105000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www16.a8.net/0.gif?a8mat=3BI0VE+4JQ84Y+0K+10CIHD" alt="" width="1" height="1" border="0" />
<h1>準備編：フォーム画面の作成</h1>
<p>まず最初に下のようなフォーム画面を作成します。</p>
<figure id="attachment_mmd_1074" class="wp-block-image aligncenter"><img decoding="async" width="812" height="489" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/timeStamp_1.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>ここで最新のファイル名の下のボックスはReadOnlyにしておきましょう。</p>
<p>&nbsp;</p>
<p>ReadOnlyにするには、ボックスを選択後プロパティ欄のReadOnlyという項目を</p>
<p>Trueにすることで設定ができます。(下図ご参考)</p>
<figure id="attachment_mmd_1075" class="wp-block-image aligncenter"><img decoding="async" width="680" height="586" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/timeStamp_2.png" class="attachment-680x883 size-680x883" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>ちなみに筆者の環境は、</p>
<ul>

<li>VisualStudio2019</li>

<li>Windows 10 64bit</li>

<li>.Net Framework 4.5.2</li>
</ul>
<p>です。</p>
<h1>フォルダのパスが入力されているか確認する</h1>
<p>まず、ボタンを押したら動作させるにあたって先に調べたいフォルダのパスが</p>
<p>入力されているかチェックをするコードを書いていきます。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestTimestamp
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 調べたいフォルダのパスが入力されていたら
        If Me.TextBox1.Text &lt;&gt; "" Then

        End If
    End Sub
End Class</pre><p>
&nbsp;</p>
<p><span class="red-under">Me.TextBox1.Text  &#8220;&#8221;</span> のとき、</p>
<p>つまり<span class="marker-under">&#8220;&#8221;(空白)以外の時のみ処理を走らせるように</span>しています。</p>
<p><span style="color: #ff0000"><strong></strong></span>と書くことで<span class="marker-under">右辺と左辺が等しくない時の条件</span>文になります。</p>
<p>&nbsp;</p>
<h1>フォルダからすべてのファイルパスを取得する</h1>
<p>次に指定のフォルダに保存されているすべてのファイルパスを取得します。</p>
<p>&nbsp;</p>
<p>全てのファイルを取得するには、</p>
<div class="sp-info"><strong>System.IO.Directory.GetFiles(&#8220;調べたいフォルダのパス&#8221;)</strong></div>
<p>と書くことですべてのファイルを配列型で受け取ることができます。</p>
<p>&nbsp;</p>
<p>コードを書くと下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestTimestamp
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 調べたいフォルダのパスが入力されていたら
        If Me.TextBox1.Text &lt;&gt; "" Then
            ' フォルダのパスから全てのファイルを取得
            Dim files As String() = System.IO.Directory.GetFiles(Me.TextBox1.Text)


        End If
    End Sub
End Class</pre><p>
&nbsp;</p>
<h2>更新日時を取得するための変数を作成</h2>
<p>各ファイルごとにファイルの更新日時を取得する前に、<span class="marker-under">取得した更新日時データを</span></p>
<p><span class="marker-under">一時的に保存しておく変数を作成</span>してあげます。</p>
<p>&nbsp;</p>
<p>今回は、Dictionary型の変数を作成してみようと思います。</p>
<p>&nbsp;</p>
<p>Dictionary型は</p>
<div class="sp-info"><strong>Dictionary(Of Key, Value)</strong></div>
<p>の表記で表すことができます。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestTimestamp
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 調べたいフォルダのパスが入力されていたら
        If Me.TextBox1.Text &lt;&gt; "" Then
            ' フォルダのパスから全てのファイルを取得
            Dim files As String() = System.IO.Directory.GetFiles(Me.TextBox1.Text)
            ' ファイルの更新日時を格納する変数を作成
            Dim dictTime As New Dictionary(Of DateTime, String)
        End If
    End Sub
End Class</pre><p>
<span class="marker-under">Keyの型を<strong>DateTime</strong>、Valueの型を<strong>String</strong>とそれぞれ設定</span>しています。</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BOMVM+276O8I+3YFI+63H8H" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www21.a8.net/svt/bgt?aid=201023698133&amp;wid=001&amp;eno=01&amp;mid=s00000018459001024000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www10.a8.net/0.gif?a8mat=3BOMVM+276O8I+3YFI+63H8H" alt="" width="1" height="1" border="0" />
<h1>ファイルの更新日時を取得する</h1>
<p>それでは、いよいよファイルごとに更新日時を取得していきます。</p>
<p>&nbsp;</p>
<p>ファイルの更新日時は、</p>
<div class="sp-primary"><strong>System.IO.File.GetLastWriteTime(&#8220;調べたいファイルのパス&#8221;)</strong></div>
<p>と書くことで更新日時が取得できます。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestTimestamp
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 調べたいフォルダのパスが入力されていたら
        If Me.TextBox1.Text &lt;&gt; "" Then
            ' フォルダのパスから全てのファイルを取得
            Dim files As String() = System.IO.Directory.GetFiles(Me.TextBox1.Text)
            ' ファイルの更新日時を格納する変数を作成
            Dim dictTime As New Dictionary(Of DateTime, String)
            ' ファイル分処理を行う
            For Each file As String In files
                ' ファイルの更新日時をdictTime変数に格納
                dictTime(System.IO.File.GetLastWriteTime(file)) = file
            Next file
        End If
    End Sub
End Class</pre><p>
keyには<span class="marker-under"><strong>更新日時</strong></span>、Valueには<span class="marker-under"><strong>ファイル名</strong></span>として、それぞれ格納しています。</p>
<p>&nbsp;</p>
<h1>最新の更新日時を持つファイルをボックスに表示</h1>
<p>最後に最新の更新日時を持つファイル名をボックスに表示するコードを書いていきます。</p>
<p>最新の更新日時のファイルを取得するには、<span class="red-under">Dictionary変数のMaxメソッドを使用します。</span></p>
<p>&nbsp;</p>
<p><span class="red-under">これは、変数に格納されている値の中で最も大きいモノを返してくれるメソッド</span>です。</p>
<p>したがって、dictTime内で更新日時が最も大きい(最新)値を表示することになります。</p>
<p>&nbsp;</p>
<p>まず、最も大きい値の取得には、</p>
<div class="sp-info"><strong>Dictionary.Keys.Max</strong></div>
<p>これで<span class="red-under">Keyの中で最も大きい値を返します</span>。</p>
<p>&nbsp;</p>
<p>これだけではファイル名の取得ができないので、</p>
<div class="sp-info"><strong>Dictionary(Dictinary.Keys.Max)</strong></div>
<p>と書くことで、<span class="red-under">KeyのValueを取得</span>します。</p>
<p>&nbsp;</p>
<p>したがって、<span class="marker-under">更新日時に関連付けられるファイル名を取得</span>します。</p>
<p>このまま表示してしまうとパスまで表示されてしまいますので、</p>
<p>ファイル名のみを抽出します。</p>
<p>&nbsp;</p>
<p>これには</p>
<div class="sp-info"><strong>System.IO.Path.GetFileName(&#8220;ファイルのパス&#8221;)</strong></div>
<p>を使います。</p>
<p>&nbsp;</p>
<p>これらを合わせたコードが下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestTimestamp
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 調べたいフォルダのパスが入力されていたら
        If Me.TextBox1.Text &lt;&gt; "" Then
            ' フォルダのパスから全てのファイルを取得
            Dim files As String() = System.IO.Directory.GetFiles(Me.TextBox1.Text)
            ' ファイルの更新日時を格納する変数を作成
            Dim dictTime As New Dictionary(Of DateTime, String)
            ' ファイル分処理を行う
            For Each file As String In files
                ' ファイルの更新日時をdictTime変数に格納
                dictTime(System.IO.File.GetLastWriteTime(file)) = file
            Next file
            ' ボックスに最新の更新日時を持つファイルを表示する
            Me.TextBox2.Text = System.IO.Path.GetFileName(dictTime(dictTime.Keys.Max))
        End If
    End Sub
End Class</pre><p>
<a href="https://px.a8.net/svt/ejp?a8mat=3BOMVM+23M2LU+49UM+5ZMCH" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www29.a8.net/svt/bgt?aid=201023698127&amp;wid=001&amp;eno=01&amp;mid=s00000019939001006000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www10.a8.net/0.gif?a8mat=3BOMVM+23M2LU+49UM+5ZMCH" alt="" width="1" height="1" border="0" />
<h1>実行してみる</h1>
<p>&nbsp;</p>
<p>実行するにあたって、下のような環境を準備しました。</p>
<figure id="attachment_mmd_1076" class="wp-block-image aligncenter"><img decoding="async" width="789" height="180" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/timeStamp_3.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>このフォルダ内のtest.txtが最新のファイルになります。</p>
<p>&nbsp;</p>
<p>つまり、test.txtが表示されれば、問題なく動作していることになります。</p>
<p>&nbsp;</p>
<p>いざ実行してみます。</p>
<figure id="attachment_mmd_1077" class="wp-block-image aligncenter"><img decoding="async" width="680" height="410" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/timeStamp_4.png" class="attachment-680x617 size-680x617" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">フォルダのパスを入力</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1078" class="wp-block-image aligncenter"><img decoding="async" width="680" height="411" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/timeStamp_5.png" class="attachment-680x619 size-680x619" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">最新のファイル名を表示</p>
<p>&nbsp;</p>
<p>動作自体は問題なくtest.txtを表示することができました。</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>ファイルの更新日時を取得するには、</p>
<div class="sp-primary"><strong>System.IO.File.GetLastWriteTime(&#8220;調べたいファイルのパス&#8221;)</strong></div>
<p>&nbsp;</p>
<p>ご覧いただきありがとうございます。</p>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="1073"
					data-ulike-nonce="79a8fd9d61"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_1073"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_23/">【VB.Net】更新日時が新しいファイルのタイムスタンプを取得する</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-template-list'>
<!-- YARPP List -->
<h3>関連記事</h3><ol>
<li><a href="https://dreamparadaisu.com/study_kids_programming_001/" rel="bookmark" title="【比較】オンラインと通学どっちがいい？小学生のためのプログラミング体験教室">【比較】オンラインと通学どっちがいい？小学生のためのプログラミング体験教室</a></li>
<li><a href="https://dreamparadaisu.com/study_kids_programming_002/" rel="bookmark" title="【調査レビュー】小学生向けプログラミング教室｜無料体験で学べる内容まとめ">【調査レビュー】小学生向けプログラミング教室｜無料体験で学べる内容まとめ</a></li>
<li><a href="https://dreamparadaisu.com/study_tech_jim/" rel="bookmark" title="【レビュー】テックジム教材一括購入プランのメリット・デメリット徹底解説">【レビュー】テックジム教材一括購入プランのメリット・デメリット徹底解説</a></li>
<li><a href="https://dreamparadaisu.com/digitane_review/" rel="bookmark" title="【調査レビュー】デジタネ（旧D-SCHOOLオンライン）とは？小中学生が自宅で学べるプログラミング教材">【調査レビュー】デジタネ（旧D-SCHOOLオンライン）とは？小中学生が自宅で学べるプログラミング教材</a></li>
<li><a href="https://dreamparadaisu.com/study_flap_design/" rel="bookmark" title="未経験からSNSデザイナーへ！Flap DESIGNで在宅×副業スキルを3ヶ月で習得">未経験からSNSデザイナーへ！Flap DESIGNで在宅×副業スキルを3ヶ月で習得</a></li>
</ol>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1073</post-id>	</item>
		<item>
		<title>【VB.Net】リストボックスの使い方を考える</title>
		<link>https://dreamparadaisu.com/visualbasic_18/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_18</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Thu, 15 Oct 2020 13:38:40 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[入門]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=1013</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、リストボックスと呼ばれるコントロールについて紹介をしていきます。 &#160; 例えば、学校の行事で遠足があります。 遠足には遠足のしおりが用意されており、この中には持ち物...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_18/">【VB.Net】リストボックスの使い方を考える</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、リストボックスと呼ばれるコントロールについて紹介をしていきます。</p>
<p>&nbsp;</p>
<p>例えば、学校の行事で遠足があります。</p>
<p>遠足には遠足のしおりが用意されており、この中には持ち物リストがあると仮定します。</p>
<p>&nbsp;</p>
<p>こういったリストを、既にあるものに対してアプリケーションで見るというのは</p>
<p>なかなか考えにくいですが、仮に遠足のしおりがアプリケーションでも</p>
<p>見られるとなった場合はどうでしょうか？</p>
<p>&nbsp;</p>
<p>そんな時にリストボックスが実は使えたりします、</p>
<p>そんなわけで使い方を簡単に例を交えて紹介していきます。</p>
<p>(前置きが長くなりました……。)</p>
<p>&nbsp;</p>
<p>ちなみに前回はこちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_17/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_10-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_10-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_10-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_10-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_17/" class="blog-card-title-link">【VB.Net】複数のテキストファイルを読み込み、1つにまとめてみる</a></div><div class="blog-card-excerpt">複数のテキストファイルを読み込んで、1つのファイルとして新たにファイルを作成したいとき、そんなときに使える方法を例を交えて紹介しています。ファイル操作を学んでアプリケーション開発のステップアップを目指していただければと思います。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_17/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_17/" alt="" /></a></div><div class="blog-card-date">2020-10-13 21:06</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www27.a8.net/svt/bgt?aid=220503664100&amp;wid=001&amp;eno=01&amp;mid=s00000015623001010000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www13.a8.net/0.gif?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1><span id="i">準備編：フォームを作成</span></h1>
<p>最初に準備として、下のようなフォームを作成します。</p>
<p>&nbsp;</p>
<p>今回は、テーマとして遠足のしおりというファイルが渡されます。</p>
<p>&nbsp;</p>
<p>このファイルを使ってリストボックスの使い方を紹介していきます。</p>
<p>&nbsp;</p>
<p>これをボタンを押すことで内容を読取り、読み取った内容を</p>
<p>持ち物リスト(ListBox)に表示していきます。</p>
<figure id="attachment_mmd_1014" class="wp-block-image aligncenter"><img decoding="async" width="811" height="481" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/list_box_1.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>ちなみに遠足のしおりファイルの内容は、下のような内容になっています。</p>
<figure id="attachment_mmd_1015" class="wp-block-image aligncenter"><img decoding="async" width="757" height="380" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/list_box_2.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>この<span class="marker-under">ファイルはデスクトップ上に保存されているものとします</span>。</p>
<p>&nbsp;</p>
<p>ちなみに筆者の環境は、</p>
<ul>

<li>VisualStudio2019</li>

<li>Windows 10 64bit</li>

<li>.Net Framework 4.5.2</li>
</ul>
<p>です。</p>
<p>&nbsp;</p>
<h1>遠足のしおり(テキストファイル)を読み込む</h1>
<p>最初に遠足のしおりを読み込みましょう。</p>
<p>&nbsp;</p>
<p>テキストファイルを読み込むには、</p>
<div class="sp-info">System.IO.StreamReader</div>
<p>を使います。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestEnsoku
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim sr As System.IO.StreamReader = Nothing

        ' 遠足のしおりの有無をチェックする
        If System.IO.File.Exists("C:/Users/ryoku/Desktop/Shiori.txt") Then
            ' あれば処理をする

            ' インスタンスを作成
            sr = New System.IO.StreamReader("C:/Users/ryoku/Desktop/Shiori.txt")

            ' ファイルを読み込む
            While sr.Peek &gt;= 0


            End While

        End If
    End Sub
End Class</pre><p>
ここまででファイルの読み込みができるようになります。</p>
<p>&nbsp;</p>
<p>リストボックスへ読み込んだ内容を追加していく</p>
<p>それでは、ファイルの内容を読み込んで行く中で、</p>
<p>リストボックスへ追加をしていきます。</p>
<p>&nbsp;</p>
<p><span class="marker-under">リストボックスへ追加</span>するには、</p>
<div class="sp-info">ListBox.Items.Add(&#8220;追加したいアイテム&#8221;)</div>
<p>と書くことで追加することができます。</p>
<p>&nbsp;</p>
<p>実際にコードを書いてみます。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestEnsoku
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim sr As System.IO.StreamReader = Nothing

        ' 遠足のしおりの有無をチェックする
        If System.IO.File.Exists("C:/Users/ryoku/Desktop/Shiori.txt") Then
            ' あれば処理をする

            ' インスタンスを作成
            sr = New System.IO.StreamReader("C:/Users/ryoku/Desktop/Shiori.txt")

            ' ファイルを読み込む
            While sr.Peek &gt;= 0
                ' リストボックスへファイルの内容を追加
                Me.ListBox1.Items.Add(sr.ReadLine)

            End While

        End If
    End Sub
End Class</pre><p>
&nbsp;</p>
<p>これを実行すると、下図のようになります。</p>
<figure id="attachment_mmd_1016" class="wp-block-image aligncenter"><img decoding="async" width="797" height="477" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/list_box_3.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>リストボックスへ内容が追加されたのがわかります。</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BO5NS+68GFUA+42SG+601S1" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www21.a8.net/svt/bgt?aid=201001384377&amp;wid=001&amp;eno=01&amp;mid=s00000019024001008000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www17.a8.net/0.gif?a8mat=3BO5NS+68GFUA+42SG+601S1" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1>リストボックスで選択された内容を表示する</h1>
<p>それでは、追加されたリストボックスの内容を選択したら、</p>
<p>その内容がメッセージボックスに表示されるといった事をしていきます。</p>
<p>&nbsp;</p>
<p>まず、リストボックスの内容が<span class="marker-under">選択されたもしくは選択した場合は、</span></p>
<p><span class="marker-under">リストボックスの<strong>イベントが発生</strong></span>します。</p>
<p>&nbsp;</p>
<p>今回はこのイベントを利用して選択された内容を表示します。</p>
<p>&nbsp;</p>
<p>まず、リストボックスの選択されたときに発生するイベントをコードエディタに記述します。</p>
<figure id="attachment_mmd_1017" class="wp-block-image aligncenter"><img decoding="async" width="680" height="334" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/list_box_4.png" class="attachment-680x502 size-680x502" alt="" loading="lazy" align="center" /></figure>
<p>このイベントを選択した状態で、ダブルクリックを押すとコードエディタに</p>
<p>自動でイベントが追加されます。</p>
<p>&nbsp;</p>
<p>追加されると下のようなコードになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestEnsoku
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim sr As System.IO.StreamReader = Nothing

        ' 遠足のしおりの有無をチェックする
        If System.IO.File.Exists("C:/Users/ryoku/Desktop/Shiori.txt") Then
            ' あれば処理をする

            ' インスタンスを作成
            sr = New System.IO.StreamReader("C:/Users/ryoku/Desktop/Shiori.txt")

            ' ファイルを読み込む
            While sr.Peek &gt;= 0
                ' リストボックスへファイルの内容を追加
                Me.ListBox1.Items.Add(sr.ReadLine)

            End While

        End If
    End Sub

    ''' &lt;summary&gt;
    ''' 内容が選択されたら発生するイベント
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged

    End Sub
End Class</pre><p>
追加されたイベントに、選択された内容を表示するコードを書きます。</p>
<p>&nbsp;</p>
<p><span class="marker-under">選択された内容を取得</span>するには、</p>
<div class="sp-info">ListBox.SelectedItem</div>
<p>を使います。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestEnsoku
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim sr As System.IO.StreamReader = Nothing

        ' 遠足のしおりの有無をチェックする
        If System.IO.File.Exists("C:/Users/ryoku/Desktop/Shiori.txt") Then
            ' あれば処理をする

            ' インスタンスを作成
            sr = New System.IO.StreamReader("C:/Users/ryoku/Desktop/Shiori.txt")

            ' ファイルを読み込む
            While sr.Peek &gt;= 0
                ' リストボックスへファイルの内容を追加
                Me.ListBox1.Items.Add(sr.ReadLine)

            End While

        End If
    End Sub

    ''' &lt;summary&gt;
    ''' 内容が選択されたら発生するイベント
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        MessageBox.Show(Me.ListBox1.SelectedItem)
    End Sub
End Class</pre><p>
&nbsp;</p>
<p>これを実行すると、</p>
<figure id="attachment_mmd_1018" class="wp-block-image aligncenter"><img decoding="async" width="794" height="476" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/list_box_5.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>持ち物リスト内の内容を選択すると、メッセージボックスで表示がされるようになります。</p>
<p>&nbsp;</p>
<h1>番外編：リストボックスのアイテム追加する方法</h1>
<p>リストボックスへアイテムを追加する方法として、</p>
<p>ListBox.Items.Add(追加したいアイテム)</p>
<p>については触れましたが、<span class="marker-under">位置を指定して追加</span>する方法があります。</p>
<p>&nbsp;</p>
<p>それが、</p>
<div class="sp-info">ListBox.Items.Insert(&#8220;追加する位置&#8221;, &#8220;追加したいアイテム&#8221;)</div>
<p>があります。</p>
<p>&nbsp;</p>
<p>これを先ほどのAddの代わりに書くと、
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class TestEnsoku
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim sr As System.IO.StreamReader = Nothing

        ' 遠足のしおりの有無をチェックする
        If System.IO.File.Exists("C:/Users/ryoku/Desktop/Shiori.txt") Then
            ' あれば処理をする

            ' インスタンスを作成
            sr = New System.IO.StreamReader("C:/Users/ryoku/Desktop/Shiori.txt")

            ' ファイルを読み込む
            While sr.Peek &gt;= 0
                ' リストボックスへファイルの内容を追加
                ' Me.ListBox1.Items.Add(sr.ReadLine)

                ' リストボックスへ位置を指定して追加
                Me.ListBox1.Items.Insert(Me.ListBox1.Items.Count, sr.ReadLine)

            End While

        End If
    End Sub

    ''' &lt;summary&gt;
    ''' 内容が選択されたら発生するイベント
    ''' &lt;/summary&gt;
    ''' &lt;param name="sender"&gt;&lt;/param&gt;
    ''' &lt;param name="e"&gt;&lt;/param&gt;
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        MessageBox.Show(Me.ListBox1.SelectedItem)
    End Sub
End Class</pre><p>
Me.ListBox1.Countとすることで、追加した内容が必ず最後に来るようにしています。</p>
<p>&nbsp;</p>
<p>Insertは、好きな位置に追加することができるので使い方によっては、使えるメソッドです。</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>簡単にリストボックス牡使い方を例を交えて紹介していきました。</p>
<p>&nbsp;</p>
<p>リストボックスへのアイテム追加や選択された表示する方法を中心にコードを書きましたが、</p>
<p>他にも色々な使い方が存在します。これについては別途紹介出来たらなと思います。</p>
<p>&nbsp;</p>
<p>リストボックスへアイテムを追加するには</p>
<div class="sp-info">ListBox.Items.Add(&#8220;追加したいアイテム&#8221;)</div>
<p>&nbsp;</p>
<p>リストボックスで選択されたアイテムを取得するには</p>
<div class="sp-info">ListBox.SelectedItem</div>
<p>&nbsp;</p>
<p>リストボックスに位置を指定して追加するには</p>
<div class="sp-info">ListBox.Items.Insert(&#8220;追加する位置&#8221;, &#8220;追加したいアイテム&#8221;)</div>
<p>&nbsp;</p>
<p>ご覧いただきありがとうございます。</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="1013"
					data-ulike-nonce="44f74dbde5"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_1013"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_18/">【VB.Net】リストボックスの使い方を考える</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1013</post-id>	</item>
		<item>
		<title>【VB.Net】複数のテキストファイルを読み込み、1つにまとめてみる</title>
		<link>https://dreamparadaisu.com/visualbasic_17/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_17</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Tue, 13 Oct 2020 12:06:56 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=996</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は複数のテキストファイルを読み込み、 1つのテキストファイルを作成する方法を紹介していきます。 &#160; ここでは、以下の点について学びながら最終的ゴールである、 1つのフ...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_17/">【VB.Net】複数のテキストファイルを読み込み、1つにまとめてみる</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は複数のテキストファイルを読み込み、</p>
<p>1つのテキストファイルを作成する方法を紹介していきます。</p>
<p>&nbsp;</p>
<p>ここでは、以下の点について学びながら最終的ゴールである、</p>
<p>1つのファイルを作り上げていきます。</p>
<p>&nbsp;</p>
<ul>

<li>複数のファイルを読み込む方法</li>

<li>複数のファイルの内容を書き込む</li>

<li>1つのファイルを作成(これについてはテキストファイル関連記事もご覧ください。)</li>
</ul>
<p>&nbsp;</p>
<p>ちなみに前回は、こちら</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_16/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/make_directory_4-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/make_directory_4-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/make_directory_4-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/make_directory_4-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_16/" class="blog-card-title-link">【VB.Net】フォルダがあるかチェックし、なければ作成する方法</a></div><div class="blog-card-excerpt">アプリケーションによっては、フォルダを作成し、そこにファイルを出力していくモノもあります。そんな時に使えるフォルダ既に作成されているのかどうかを確認し、なければ新たに作成する方法を実際にWindowsフォームを例に簡単に紹介しています。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_16/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_16/" alt="" /></a></div><div class="blog-card-date">2020-10-13 01:22</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www27.a8.net/svt/bgt?aid=220503664100&amp;wid=001&amp;eno=01&amp;mid=s00000015623001010000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www13.a8.net/0.gif?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1><span id="i">準備編：フォームを作成</span></h1>
<p>最初に準備として、下のようなフォームを作成します。</p>
<figure id="attachment_mmd_997" class="wp-block-image aligncenter"><img decoding="async" width="811" height="489" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_1.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>コントロールは、</p>
<ul>

<li>ラベル</li>

<li>リッチテキストボックス</li>

<li>ボタン</li>

<li>テキストボックス</li>
</ul>
<p>を使用しています。</p>
<p>&nbsp;</p>
<p>ちなみに筆者の環境は、</p>
<ul>

<li>VisualStudio2019</li>

<li>Windows 10 64bit</li>

<li>.Net Framework 4.5.2</li>
</ul>
<p>です。</p>
<h1>適当なフォルダを作成し、テキストファイルを作成</h1>
<p>任意の場所にフォルダを作成し、その中にテキストファイルを3～4つ作成しましょう。</p>
<p>筆者は、以下のフォルダを作成し、テキストファイルを作成しました。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_998" class="wp-block-image aligncenter"><img decoding="async" width="680" height="294" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_2.png" class="attachment-680x443 size-680x443" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>テキストファイルの中身はそれぞれ</p>
<figure id="attachment_mmd_999" class="wp-block-image aligncenter"><img decoding="async" width="755" height="276" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_3.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">sample_1.txt</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1000" class="wp-block-image aligncenter"><img decoding="async" width="756" height="256" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_4.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">sample_2.txt</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1001" class="wp-block-image aligncenter"><img decoding="async" width="756" height="255" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_5.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">sample_3.txt</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1002" class="wp-block-image aligncenter"><img decoding="async" width="757" height="222" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_6.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p style="text-align: center">sample_4.txt</p>
<p>&nbsp;</p>
<p>を用意しました。(よければ同じのを作成してみてください。)</p>
<p>&nbsp;</p>
<h1>複数のテキストファイルを読み込む</h1>
<p>それでは先ほど作成もしくは適当に用意したテキストファイルを読み取っていきます。</p>
<p>複数のファイルを読み取るには、考え方を少し変えます。</p>
<p>&nbsp;</p>
<p>まず、1つのファイルを読み取るには、</p>
<div class="sp-info">System.IO.StreamReader</div>
<p>を使うということは以前の記事でも触れました。</p>
<p>&nbsp;</p>
<p>実は今回もこれを使います……。</p>
<p>&nbsp;</p>
<p>ただ、このままでは複数のファイルは読み取ることができません。</p>
<p>どうすればよいか……。</p>
<p>ここで考え方を整理します。</p>
<p>&nbsp;</p>
<p>複数のファイルはもともとは一つのファイルで存在します。</p>
<p>つまり、フォルダ内にある一つ一つのファイルを取得し、配列やリストといった</p>
<p>コレクション型の変数に格納してやります。</p>
<p>&nbsp;</p>
<p>そうすることで、あとはFor文やWhile文を回すことで
<span class="marker-under">あたかも複数のファイルを読み取っているような処理</span>が実現できます。</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BO5NS+68GFUA+42SG+601S1" rel="nofollow"><img loading="lazy" decoding="async" class="aligncenter" src="https://www28.a8.net/svt/bgt?aid=201001384377&amp;wid=001&amp;eno=01&amp;mid=s00000019024001008000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<p>&nbsp;</p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www15.a8.net/0.gif?a8mat=3BO5NS+68GFUA+42SG+601S1" alt="" width="1" height="1" border="0" />
<h2>複数のファイルを取得する</h2>
<p>&nbsp;</p>
<p>複数のファイルを取得するには、</p>
<div class="sp-info">System.IO.Directory.GetFiles(&#8220;フォルダの場所&#8221;)</div>
<p>を使います。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs)
        ' 配列変数filesを作成し、これにフォルダ内のファイルをそれぞれ代入
        Dim files As String() =
            System.IO.Directory.GetFiles("C:\Users\ryoku\Desktop\AryTextFile")

    End Sub
End Class</pre><p>
<span class="red-under">System.IO.Directory.GetFiles()は戻り値があるメソッド</span>なので、</p>
<p>変数を作成し代入する書き方をしています。</p>
<p>&nbsp;</p>
<h2>変数filesの中身をフォーム上に表示してみる</h2>
<p>それでは、変数filesの中身をリッチテキストボックスに表示していきましょう。</p>
<p>コードは下のようになります。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 配列変数filesを作成し、これにフォルダ内のファイルをそれぞれ代入
        Dim files As String() =
            System.IO.Directory.GetFiles("C:\Users\ryoku\Desktop\AryTextFile")
        For Each file As String In files
            ' １つずつのファイルについて処理を行う

            ' リッチテキストボックスにファイル名を表示
            Me.RichTextBox1.Text += file + vbCrLf

        Next file

    End Sub
End Class</pre><p>
これを実行すると、</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1003" class="wp-block-image aligncenter"><img decoding="async" width="797" height="478" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_7.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>このようになりますが、ちょっと見づらいですね。</p>
<p>なので、ファイルの名前だけを表示してあげるように直します。</p>
<p>&nbsp;</p>
<p>ファイルのパスからファイル名と拡張子を取得するには、</p>
<div class="sp-info">System.IO.Path.GetFileName(&#8220;ファイル名(パス含む)&#8221;)</div>
<p>を使用します。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 配列変数filesを作成し、これにフォルダ内のファイルをそれぞれ代入
        Dim files As String() =
            System.IO.Directory.GetFiles("C:\Users\ryoku\Desktop\AryTextFile")
        For Each file As String In files
            ' １つずつのファイルについて処理を行う

            ' リッチテキストボックスにファイル名を表示
            Me.RichTextBox1.Text += System.IO.Path.GetFileName(file) + vbCrLf

        Next file

    End Sub
End Class</pre><p>
これを実行すると、</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_1004" class="wp-block-image aligncenter"><img decoding="async" width="792" height="474" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_8.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>見やすくなりました。</p>
<p>&nbsp;</p>
<h2>ファイルを読取り、内容を変数に代入</h2>
<p>1つ1つに処理ができるようになったので、ファイルを読取り、</p>
<p>&nbsp;</p>
<p>内容を配列やリストのコレクション型変数を作成し代入していきます。</p>
<p>コードは下のようになります。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 配列変数filesを作成し、これにフォルダ内のファイルをそれぞれ代入
        Dim files As String() =
            System.IO.Directory.GetFiles("C:\Users\ryoku\Desktop\AryTextFile")
        ' 事前に内容を書き込む変数を作成
        Dim text As New System.Text.StringBuilder
        ' 事前にファイルを読み取る変数を作成
        Dim sr As System.IO.StreamReader = Nothing
        For Each file As String In files
            ' １つずつのファイルについて処理を行う

            ' リッチテキストボックスにファイル名を表示
            Me.RichTextBox1.Text += System.IO.Path.GetFileName(file) + vbCrLf

            ' ファイルを読み取る準備
            sr = New System.IO.StreamReader(file)

            ' ファイルの内容を最後まで読み取る
            While sr.Peek &gt;= 0
                text.Append(sr.ReadLine + vbCrLf)
            End While

        Next file

    End Sub
End Class</pre><p>
&nbsp;</p>
<h2>読み取った内容をもとに新たにファイルを作成する</h2>
<p>それでは読み取った内容をもとにファイルを作成します。</p>
<p>&nbsp;</p>
<p>ファイルを作成するには、</p>
<div class="sp-info">System.IO.StreamWriter</div>
<p>を使います。</p>
<p>&nbsp;</p>
<p>今回、文字コードはUTF-8にします。</p>
<p>コードは下のようになります。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 配列変数filesを作成し、これにフォルダ内のファイルをそれぞれ代入
        Dim files As String() =
            System.IO.Directory.GetFiles("C:\Users\ryoku\Desktop\AryTextFile")
        ' 事前に内容を書き込む変数を作成
        Dim text As New System.Text.StringBuilder
        ' 事前にファイルを読み取る変数を作成
        Dim sr As System.IO.StreamReader = Nothing
        For Each file As String In files
            ' １つずつのファイルについて処理を行う

            ' リッチテキストボックスにファイル名を表示
            Me.RichTextBox1.Text += System.IO.Path.GetFileName(file) + vbCrLf

            ' ファイルを読み取る準備
            sr = New System.IO.StreamReader(file)

            ' ファイルの内容を最後まで読み取る
            While sr.Peek &gt;= 0
                text.Append(sr.ReadLine + vbCrLf)
            End While

        Next file

        ' 新たなファイルを作成する準備をする
        Dim sw As System.IO.StreamWriter
        ' 文字コードを設定
        Dim utf As System.Text.Encoding = System.Text.Encoding.UTF8
        ' 新たに作成する場所を設定
        Dim newFile As String = "./FusionText.txt"

        ' インスタンスを作成
        sw = New System.IO.StreamWriter(newFile, True, utf)

        ' ファイルを作成
        sw.Write(text.ToString)

        ' オブジェクトの解放
        sw.Close()
        sw.Dispose()
        sw = Nothing
        GC.Collect()

    End Sub
End Class</pre><p>
最後にオブジェクトの解放を忘れずに。</p>
<p>これでファイルの作成ができます。</p>
<p>&nbsp;</p>
<p>ファイルの作成部分に関しては、以前に記事にまとめたので</p>
<p>こちらもご参考いただければと思います。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_9/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_10-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_10-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_10-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_10-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_9/" class="blog-card-title-link">【VB.Net】テキストファイルを作成するやり方</a></div><div class="blog-card-excerpt">テキストファイルを作成する方法を、フォーム上のボタンが押された後にテキストボックスに入力された文字を書き込むといった例を交えて紹介しています。プログラム上でファイルを作成する方法はいくつかありますが、その中でも一般的に使われているだろう方法を載せています。これをきっかけにイメージをつかんでいただけたらなと思います。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_9/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_9/" alt="" /></a></div><div class="blog-card-date">2020-10-01 19:55</div></div></div>
<p>&nbsp;</p>
<p>最後に作成したファイル名をテキストボックスに表示しておきましょう。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' 配列変数filesを作成し、これにフォルダ内のファイルをそれぞれ代入
        Dim files As String() =
            System.IO.Directory.GetFiles("C:\Users\ryoku\Desktop\AryTextFile")
        ' 事前に内容を書き込む変数を作成
        Dim text As New System.Text.StringBuilder
        ' 事前にファイルを読み取る変数を作成
        Dim sr As System.IO.StreamReader = Nothing
        For Each file As String In files
            ' １つずつのファイルについて処理を行う

            ' リッチテキストボックスにファイル名を表示
            Me.RichTextBox1.Text += System.IO.Path.GetFileName(file) + vbCrLf

            ' ファイルを読み取る準備
            sr = New System.IO.StreamReader(file)

            ' ファイルの内容を最後まで読み取る
            While sr.Peek &gt;= 0
                text.Append(sr.ReadLine + vbCrLf)
            End While

        Next file

        ' 新たなファイルを作成する準備をする
        Dim sw As System.IO.StreamWriter
        ' 文字コードを設定
        Dim utf As System.Text.Encoding = System.Text.Encoding.UTF8
        ' 新たに作成する場所を設定
        Dim newFile As String = "./FusionText.txt"

        ' インスタンスを作成
        sw = New System.IO.StreamWriter(newFile, True, utf)

        ' ファイルを作成
        sw.Write(text.ToString)

        ' オブジェクトの解放
        sw.Close()
        sw.Dispose()
        sw = Nothing
        GC.Collect()

        ' 作成したファイル名を表示
        Me.TextBox1.Text = System.IO.Path.GetFileName(newFile)

    End Sub
End Class</pre><p>
&nbsp;</p>
<p>それではこれを実行してみましょう、下のようになれば成功です。</p>
<figure id="attachment_mmd_1005" class="wp-block-image aligncenter"><img decoding="async" width="795" height="473" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/text_file_ary_9.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>お疲れ様です。</p>
<p>&nbsp;</p>
<p>今回は複数のファイルを読み取って、1つのファイルを作成する方法を紹介しました。</p>
<p>考え方次第で、いろいろなやり方があるので今回のはほんの一例として、</p>
<p>参考にしてもらえたらなと思います。</p>
<p>&nbsp;</p>
<p>プログラムはプロセスも大事ですが、当然結果も同じぐらい大事です。</p>
<p>どんなプロセスであれ、結果が最終的に同じであればいいときがあります。</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>&nbsp;</p>
<p>フォルダ内のファイルを取得するには</p>
<div class="sp-primary">System.IO.Directory.GetFiles(&#8220;フォルダ名(パス含む)&#8221;)</div>
<p>&nbsp;</p>
<p>ファイルのパスからファイル名と拡張子を取り出すには</p>
<div class="sp-primary">System.IO.Path.GetFileName(&#8220;ファイル名(パス含む)&#8221;)</div>
<div></div>
<div>最後までお読みいただき、ありがとうございます。</div>
<div></div>
<div></div>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="996"
					data-ulike-nonce="afe65cdb12"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_996"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_17/">【VB.Net】複数のテキストファイルを読み込み、1つにまとめてみる</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">996</post-id>	</item>
		<item>
		<title>【VB.Net】設定ファイル(iniファイル)を読込む</title>
		<link>https://dreamparadaisu.com/visualbasic_13/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_13</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Tue, 06 Oct 2020 16:12:17 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[プログラム]]></category>
		<category><![CDATA[入門]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=932</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回は、iniファイルと呼ばれる設定ファイルについて使い方を例を交えて紹介していきます。 アプリケーションを作るうえで必要となってくるスキルだと筆者は思っています。 &#160; ...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_13/">【VB.Net】設定ファイル(iniファイル)を読込む</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回は、iniファイルと呼ばれる設定ファイルについて使い方を例を交えて紹介していきます。</p>
<p>アプリケーションを作るうえで必要となってくるスキルだと筆者は思っています。</p>
<p>&nbsp;</p>
<p>ここで使い方を身に着け、アプリケーション作りに活かしていただけたら嬉しいです。</p>
<p>&nbsp;</p>
<p>ちなみに前回はデータテーブルについて記事を書きました。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_12/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_13-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_13-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_13-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_13-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_12/" class="blog-card-title-link">【VB.Net】データテーブルの使い方を学ぼう</a></div><div class="blog-card-excerpt">データテーブル型と呼ばれるExcelの表もしくはデータベースを構築する際のテーブルをイメージした型がVB.Netにはあります。この型について例を交えて使い方を紹介しています。応用例では、CSVファイルを読み取ってデータテーブルに追加する方法も紹介しています。勉強初めの方に覚えていただければなと思います。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_12/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_12/" alt="" /></a></div><div class="blog-card-date">2020-10-06 01:15</div></div></div>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www27.a8.net/svt/bgt?aid=220503664100&amp;wid=001&amp;eno=01&amp;mid=s00000015623001010000&amp;mc=1" alt="" width="468" height="60" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www13.a8.net/0.gif?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" alt="" width="1" height="1" border="0" />
<p>&nbsp;</p>
<h1>iniファイル : 設定ファイル</h1>
<p>主にWindowsで使用され、<span class="marker-under">テキストファイルの一種</span>となります。</p>
<p><span class="marker-under">アプリケーションの設定などを書き込んだ設定ファイル</span>になります。</p>
<p>&nbsp;</p>
<p>例えば、画面のサイズやアプリケーションがファイルを作成する機能を持っていたら、</p>
<p>そのファイルの作成場所などを設定ファイルに書き込んでおくことで、</p>
<p><span class="marker-under">コードをいじらなくても、設定ファイルを参照することで、</span></p>
<p><span class="marker-under">変更が行えたりと利便性があります</span>。</p>
<p>&nbsp;</p>
<p>iniファイルは、テキストファイルと違って、<span class="marker-under"><strong>拡張子が&#8221;.ini&#8221;</strong></span>になります。</p>
<p>&nbsp;</p>
<h1>iniファイルの準備をする</h1>
<p>さっそく、iniファイルを作ってみます。</p>
<p>&nbsp;</p>
<p>VisualStudioを起動し、新しくWindowsフォームアプリケーションの</p>
<p>プロジェクトを作成しましょう。</p>
<p>&nbsp;</p>
<p>作成ができたら、ソリューションエクスプローラの&#8221;bin&#8221;フォルダの→をクリックして、</p>
<p>リストを展開します。</p>
<p>&nbsp;</p>
<p>展開すると、&#8221;Debug&#8221;フォルダがあります。これを選択して右クリックを押します。</p>
<p>右クリックを押すと、追加という項目が出てきます。(下図参照)</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_933" class="wp-block-image aligncenter"><img decoding="async" width="376" height="542" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/ini_1PNG.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>追加にカーソルを合わせると、新たに小ウィンドウが開かれます。</p>
<p>その中にある&#8221;新しいフォルダを作成&#8221;を選んでフォルダを作成します。(下図参照)</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_934" class="wp-block-image aligncenter"><img decoding="async" width="378" height="407" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/ini_2.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>今回は、iniフォルダという名前のフォルダを作成しました。</p>
<p>次に、このiniフォルダにiniファイルを作成していきます。</p>
<p>&nbsp;</p>
<p>先ほどと同様に、iniフォルダを選択し、右クリックを押します。</p>
<p>追加にカーソルを合わせて、新しい項目を選びます。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_935" class="wp-block-image aligncenter"><img decoding="async" width="937" height="653" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/ini_3.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>上の画面の左タブにある&#8221;全般&#8221;を選択します。</p>
<p>選択すると、真ん中に表示される内容が切り替わります。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_936" class="wp-block-image aligncenter"><img decoding="async" width="940" height="652" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/ini_4.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>この中のテキストファイルを選択して、名前を「test.ini」に変え、追加ボタンを押します。</p>
<p>これでiniファイルを作成することができました。</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BO5NS+68GFUA+42SG+66H9D" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www25.a8.net/svt/bgt?aid=201001384377&amp;wid=001&amp;eno=01&amp;mid=s00000019024001038000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www14.a8.net/0.gif?a8mat=3BO5NS+68GFUA+42SG+66H9D" alt="" width="1" height="1" border="0" />
<h1>iniファイルに内容を書き込む</h1>
<p>作成したiniファイルに内容を書き込んでいきます。</p>
<p>&nbsp;</p>
<p>iniファイルの構成は、下図のようになります。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_937" class="wp-block-image aligncenter"><img decoding="async" width="669" height="383" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/ini_5.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>キーに対してバリューがあるといった感じです、これはPythonの時にも紹介した、</p>
<p>辞書型(dictionary)と似たような形ですね。</p>
<p>&nbsp;</p>
<p>では、先ほど作成したiniファイルに同じ内容を書き込んでみましょう。</p>
<p>&nbsp;</p>
<figure id="attachment_mmd_940" class="wp-block-image aligncenter"><img decoding="async" width="359" height="279" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/ini_6-1.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>これでiniファイルが完成しました。</p>
<p>実際に作成したiniファイルを読み込んでいきましょう。</p>
<p>&nbsp;</p>
<p>いよいよ本題です。</p>
<p>&nbsp;</p>
<h1>iniファイルを読み込む　：　本題</h1>
<p>下のようなフォーム画面を作成します。</p>
<figure id="attachment_mmd_939" class="wp-block-image aligncenter"><img decoding="async" width="813" height="483" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/ini_7.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>ボタンとリッチテキストボックスを配置しています。</p>
<p>&nbsp;</p>
<p>※　作成する際は大きさや配置場所は自由で問題ありません。</p>
<p>2つのコントロールは必須です。</p>
<p>&nbsp;</p>
<p>それでは、ボタンをダブルクリックして、コードエディタ画面に移ります。</p>
<h2>iniファイルのパスを定数として設定する</h2>
<p>最初にiniファイルのパス(場所)を定数として宣言しておきます。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1

    ' iniファイルの場所を定数として宣言
    Private Const INI_FILE_PATH As String = "./ini/test.ini"

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    End Sub
End Class</pre><p>
&nbsp;</p>
<h1>ファイルを読み取る変数を準備する</h1>
<p>次にファイルを読み取る変数の準備をします。</p>
<p>&nbsp;</p>
<p>ここは前々回紹介した、<span class="red-under">System.IO.StreamReaderは使いません……</span>。</p>
<p>(使わないならどうするの……？)</p>
<p>&nbsp;</p>
<p>iniファイルの場合は、<span class="marker-under">APIと呼ばれるツールを使います</span>。</p>
<div class="information">※API : Application Programming Interface
アプリケーションプログラミングインターフェース</div>
<p>と呼ばれます。</p>
<p>&nbsp;</p>
<p>このAPIについては、既に公開されているツールですので、</p>
<p>そのまま使わせていただきます。</p>
<p>&nbsp;</p>
<p>コードとして書くと下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">' System.Runtime.InteropServicesクラスをインポート
Imports System.Runtime.InteropServices

Public Class Form1

    ' iniファイルの場所を定数として宣言
    Private Const INI_FILE_PATH As String = "./ini/test.ini"

    ' API宣言
    ' ------------------------------------------------------
    ' ini ファイル書き込み
    ' ------------------------------------------------------
    &lt;DllImport("Kernel32.dll")&gt;
    Private Shared Function WritePrivateProfileString(
                    ByVal lpAppName As String,                      'セクション名
                    ByVal lpKeyName As String,                      'キー名
                    ByVal lpString As String,
                    ByVal lpFileName As String) As Integer
    End Function

    ' ------------------------------------------------------
    ' ini ファイル読み込み
    ' ------------------------------------------------------
    &lt;DllImport("Kernel32.dll", CharSet:=CharSet.Auto)&gt;
    Private Shared Function GetPrivateProfileString(
                    ByVal lpAppName As String,                                   ' セクション名
                    ByVal lpKeyName As String,                                   ' キー名
                    ByVal lpDefault As String,                                   ' キーが見つからなかった場合に取得するデフォルト値
                    ByVal lpReturnedString As System.Text.StringBuilder,         ' 取得した文字列が入るバッファ
                    ByVal nSize As Integer,                                      ' 取得した文字列のバッファサイズ
                    ByVal lpFileName As String) As Integer
    End Function

    '-------------------------------------------------------
    'iniファイル(整数値読み込み)
    '-------------------------------------------------------
    &lt;DllImport("Kernel32.dll", CharSet:=CharSet.Auto)&gt;
    Private Shared Function GetPrivateProfileInt(
                    ByVal lpAppName As String,                  ' セクション名
                    ByVal lpKeyName As String,                  ' キー名
                    ByVal nDefault As Integer,                  ' キーが見つからなかった場合に取得するデフォルト値
                    ByVal lpFileName As String) As Integer      ' iniファイル名
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    End Sub
End Class</pre><p>
&nbsp;</p>
<p>これでAPIを使う準備ができ、iniファイル読み込めることができます。</p>
<p>次に、APIを使ってiniファイルを読み込む関数を作成していきます。</p>
<p>&nbsp;</p>
<p style="text-align: center"></p>
<p>&nbsp;</p>
<h1>APIを使って読み込む関数を作る</h1>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">' System.Runtime.InteropServicesクラスをインポート
Imports System.Runtime.InteropServices

Public Class Form1

    ' iniファイルの場所を定数として宣言
    Private Const INI_FILE_PATH As String = "./ini/test.ini"

    ' API宣言
    ' ------------------------------------------------------
    ' ini ファイル書き込み
    ' ------------------------------------------------------
    &lt;DllImport("Kernel32.dll")&gt;
    Private Shared Function WritePrivateProfileString(
                    ByVal lpAppName As String,                      'セクション名
                    ByVal lpKeyName As String,                      'キー名
                    ByVal lpString As String,
                    ByVal lpFileName As String) As Integer
    End Function

    ' ------------------------------------------------------
    ' ini ファイル読み込み
    ' ------------------------------------------------------
    &lt;DllImport("Kernel32.dll", CharSet:=CharSet.Auto)&gt;
    Private Shared Function GetPrivateProfileString(
                    ByVal lpAppName As String,                                             ' セクション名
                    ByVal lpKeyName As String,                                             ' キー名
                    ByVal lpDefault As String,                                                 ' キーが見つからなかった場合に取得するデフォルト値
                    ByVal lpReturnedString As System.Text.StringBuilder,         ' 取得した文字列が入るバッファ
                    ByVal nSize As Integer,                                                    ' 取得した文字列のバッファサイズ
                    ByVal lpFileName As String) As Integer
    End Function

    '-------------------------------------------------------
    'iniファイル(整数値読み込み)
    '-------------------------------------------------------
    &lt;DllImport("Kernel32.dll", CharSet:=CharSet.Auto)&gt;
    Private Shared Function GetPrivateProfileInt(
                    ByVal lpAppName As String,                      ' セクション名
                    ByVal lpKeyName As String,                      ' キー名
                    ByVal nDefault As Integer,                        ' キーが見つからなかった場合に取得するデフォルト値
                    ByVal lpFileName As String) As Integer      ' iniファイル名
    End Function

    ''' &lt;summary&gt;
    ''' INIファイル読取(文字列)
    ''' &lt;/summary&gt;
    ''' &lt;param name="lpAppName"&gt;&lt;/param&gt;
    ''' &lt;param name="lpKeyName"&gt;&lt;/param&gt;
    ''' &lt;returns&gt;&lt;/returns&gt;
    Public Function GetIniString(ByVal lpAppName As String, ByVal lpKeyName As String) As String
        Dim BuffSize As Integer = 256
        Dim str As System.Text.StringBuilder = New System.Text.StringBuilder(BuffSize)
        Try
            Call GetPrivateProfileString(lpAppName, lpKeyName, str.ToString, str, str.Capacity, INI_FILE_PATH)
            Return str.ToString
        Catch ex As Exception
            Return str.ToString
        End Try
    End Function

    ''' &lt;summary&gt;
    ''' INIファイル読取(整数)
    ''' &lt;/summary&gt;
    ''' &lt;param name="lpAppName"&gt;セクション&lt;/param&gt;
    ''' &lt;param name="lpKeyName"&gt;キー&lt;/param&gt;
    ''' &lt;returns&gt;&lt;/returns&gt;
    Public Function GetIniInt(ByVal lpAppName As String, ByVal lpKeyName As String) As Integer
        Dim int As Integer
        Try
            int = GetPrivateProfileInt(lpAppName, lpKeyName, 0, INI_FILE_PATH)
            Return int
        Catch ex As Exception
            Return int
        End Try
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    End Sub
End Class</pre><p></p>
<ul>

<li>文字列を読み込む関数を<strong>GetIniString()</strong></li>

<li>整数値を読み込む関数を<strong>GetIniInt()</strong></li>
</ul>
<p>として、それぞれ関数を作成しました。</p>
<p>&nbsp;</p>
<h1>関数を使って、iniファイルを読み込む</h1>
<p>いよいよ、iniファイルを読み込んでいきます。</p>
<p>&nbsp;</p>
<p>今回は、ボタンを押したら、iniファイルを読み込み</p>
<p>読み込んだ結果をリッチテキストボックスに出力していくことをゴールとしました。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。※抜粋して表示しています。</p>
<p>&nbsp;
</p><pre class="urvanov-syntax-highlighter-plain-tag">' System.Runtime.InteropServicesクラスをインポート
Imports System.Runtime.InteropServices

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ' iniファイルを読み込む
        Me.RichTextBox1.Text = GetIniString("TEST", "key")
        Me.RichTextBox1.Text += vbCrLf
        Me.RichTextBox1.Text += GetIniString("TEST", "key2")

    End Sub
End Class</pre><p>
<span class="marker-under">GetIniStringの引数には、セクションと各キーを渡しています</span>。</p>
<p>&nbsp;</p>
<p>それぞれをから取得した結果がリッチテキストボックスに表示がされます。</p>
<p>&nbsp;</p>
<p>下図のようになれば、成功です。</p>
<figure id="attachment_mmd_941" class="wp-block-image aligncenter"><img decoding="async" width="680" height="476" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/ini_8.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>ここまでで一通りの流れは終了です。</p>
<p>無事にiniファイルを読取りテキストボックスに表示することができました。</p>
<p>&nbsp;</p>
<p>お疲れ様です。</p>
<p>&nbsp;</p>
<h1>まとめ</h1>
<p>今回やったこと、</p>
<p><span class="marker-under">iniファイルとは設定ファイルであり、アプリケーション作成ではかかせない</span>。</p>
<p>&nbsp;</p>
<p>iniファイルの構成としては、<span class="marker-under">[セクション] key=Valueの関係</span>があり、</p>
<p>これを記述していく必要がある。</p>
<p>&nbsp;</p>
<p>iniファイルを読み込むには、<span class="marker-under">専用のAPIを使う</span>。</p>
<p>&nbsp;</p>
<p>ご覧いただきありがとうございます。</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="932"
					data-ulike-nonce="0bdc8389c9"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_932"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="+1"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_13/">【VB.Net】設定ファイル(iniファイル)を読込む</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">932</post-id>	</item>
		<item>
		<title>【VB.Net】CSVファイルを読み込んでみる</title>
		<link>https://dreamparadaisu.com/visualbasic_11/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visualbasic_11</link>
		
		<dc:creator><![CDATA[リョクちゃ]]></dc:creator>
		<pubDate>Sat, 03 Oct 2020 12:44:40 +0000</pubDate>
				<category><![CDATA[VB.Net]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[テキストファイル]]></category>
		<category><![CDATA[入門]]></category>
		<guid isPermaLink="false">https://dreamparadaisu.com/?p=899</guid>

					<description><![CDATA[<p>どうも！リョクちゃです。 &#160; 今回はCSVファイルを読み込む方法を例を交えて紹介していきます。 &#160; 例にて使うCSVファイルは前回の記事で作成したCSVファイルを使います。 &#160; 前回の記事は...</p>
The post <a href="https://dreamparadaisu.com/visualbasic_11/">【VB.Net】CSVファイルを読み込んでみる</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>

この投稿の関連記事が見つかりませんでした。
</div>
]]></description>
										<content:encoded><![CDATA[<p>どうも！リョクちゃです。</p>
<p>&nbsp;</p>
<p>今回はCSVファイルを読み込む方法を例を交えて紹介していきます。</p>
<p>&nbsp;</p>
<p>例にて使うCSVファイルは前回の記事で作成したCSVファイルを使います。</p>
<p>&nbsp;</p>
<p>前回の記事はこちらになります。</p>
<div class="blog-card internal-blog-card blog-card-thumbnail-right cf"><div class="blog-card-thumbnail"><a href="https://dreamparadaisu.com/visualbasic_10/" class="blog-card-thumbnail-link"><img width="100" height="100" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_11-100x100.png" class="blog-card-thumb-image wp-post-image" alt="" srcset="https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_11-100x100.png 100w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_11-150x150.png 150w, https://dreamparadaisu.com/wp-content/uploads/2020/10/VBNet_Title_11-120x120.png 120w" sizes="(max-width: 100px) 100vw, 100px" /></a></div><div class="blog-card-content"><div class="blog-card-title"><a href="https://dreamparadaisu.com/visualbasic_10/" class="blog-card-title-link">【VB.Net】フォームアプリケーションでCSVファイルを作ってみる</a></div><div class="blog-card-excerpt">CSVファイルは、なにかとアプリケーションを作っていくうえで必要になってくるのではないでしょうか？そんなCSVファイルをVB.Netで作る方法を例を交えて紹介しています。
CSVファイル：CommaSeparateValues←これをCSVファイルといいます。</div></div><div class="blog-card-footer"><div class="blog-card-site">dreamparadaisu.com</div><div class="blog-card-hatebu"><a href="//b.hatena.ne.jp/entry/https://dreamparadaisu.com/visualbasic_10/" rel="nofollow"><img src="//b.hatena.ne.jp/entry/image/https://dreamparadaisu.com/visualbasic_10/" alt="" /></a></div><div class="blog-card-date">2020-10-02 07:34</div></div></div>
<p style="text-align: center"><a href="https://px.a8.net/svt/ejp?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" rel="nofollow">
<img loading="lazy" decoding="async" src="https://www27.a8.net/svt/bgt?aid=220503664100&amp;wid=001&amp;eno=01&amp;mid=s00000015623001010000&amp;mc=1" alt="" width="468" height="60" border="0"></a>
<img loading="lazy" decoding="async" src="https://www13.a8.net/0.gif?a8mat=3NA5PS+1NJD9U+3CJQ+60H7L" alt="" width="1" height="1" border="0"></p>
<p>&nbsp;</p>
<h1>準備編：フォームの作成</h1>
<p>下のようなフォームを今回作成します。</p>
<figure id="attachment_mmd_900" class="wp-block-image aligncenter"><img decoding="async" width="815" height="487" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/vb_csv_2.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>&nbsp;</p>
<p>今回使用するコントロールは、</p>
<ul>

<li>RichTextBox</li>

<li>Button</li>
</ul>
<p>を使用します。</p>
<p>&nbsp;</p>
<p>動作としては、ボタンを押すことで指定の場所のCSVファイルを読み込みます。</p>
<p>&nbsp;</p>
<p>読み込んだ結果をRichTextBoxに出力していきます。</p>
<p>このような動作をするプログラムを作成していきます。</p>
<p>&nbsp;</p>
<h1>CSVファイルを読み込む準備</h1>
<p>CSVファイルを読み込むには、テキストファイルを読み込むときと同じ処理を行います。</p>
<p>&nbsp;</p>
<p><span class="marker-under"><strong>System.IO.StreamReade</strong></span>rを使います。</p>
<p>&nbsp;</p>
<p>先ほど作ったフォームにコードを書いていきましょう。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' CSVファイルを読み込む変数の準備
        Dim sr As System.IO.StreamReader = Nothing

    End Sub
End Class</pre><p>
ここではSystem.IO.StreamReaderを使うための変数を準備しています。</p>
<p>&nbsp;</p>
<h1>読み込むCSVファイルの有無を確認</h1>
<p>CSVファイルを読み込む前に、読み込むCSVファイルが存在するかどうかを</p>
<p>確認するコードを書いていきます。</p>
<p>&nbsp;</p>
<p>確認するにはSystem.IO.FileクラスのExistsメソッドを使用します。</p>
<p>&nbsp;</p>
<p>※これは事前に確認をすることでエラーとなることを防いでいます。</p>
<p>&nbsp;</p>
<p>アプリケーションを作るうえでは使う側のことも考えたコードを書くことが大事です。</p>
<p>と筆者は思っています。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' CSVファイルを読み込む変数の準備
        Dim sr As System.IO.StreamReader = Nothing

        '  CSVファイルが存在するかチェック
        If System.IO.File.Exists("./Test.csv") Then
            ' CSVファイルがあれば処理を行う

        End If

    End Sub
End Class</pre><p>
System.IO.File.Exists(&#8220;ファイルの場所&#8221;)と書くことでファイルの存在を確認しています。</p>
<p>&nbsp;</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BO5NS+6GSIB6+50+4Z9EJ5" rel="nofollow">
<img loading="lazy" decoding="async" class="aligncenter" src="https://www24.a8.net/svt/bgt?aid=201001384391&amp;wid=001&amp;eno=01&amp;mid=s00000000018030109000&amp;mc=1" alt="" width="300" height="250" border="0" /></a></p>
<img loading="lazy" decoding="async" class="aligncenter" src="https://www16.a8.net/0.gif?a8mat=3BO5NS+6GSIB6+50+4Z9EJ5" alt="" width="1" height="1" border="0" />
<h1>インスタンスを作成する</h1>
<p>このままではファイルを読み込む変数が使えないので、インスタンス化をします。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' CSVファイルを読み込む変数の準備
        Dim sr As System.IO.StreamReader = Nothing

        '  CSVファイルが存在するかチェック
        If System.IO.File.Exists("./Test.csv") Then
            ' CSVファイルがあれば処理を行う
            ' インスタンス作成
            sr = New System.IO.StreamReader("./Test.csv")

        End If

    End Sub
End Class</pre><p>
インスタンスを作成する際に、読み込むCSVファイルを引数に渡しています。</p>
<p>&nbsp;</p>
<h1>CSVファイルを読み込む</h1>
<p>それではCSVファイルを読み込んでいきます。</p>
<p>&nbsp;</p>
<p>読み込むには、System.IO.StreamReaderクラスのReadLineメソッドを使います。</p>
<p>&nbsp;</p>
<p>また全ての中身を読み取るために、</p>
<p>System.IO.StreamReaderクラスのPeekメソッドも使います。</p>
<p>&nbsp;</p>
<p>コードは下のようになります。
</p><pre class="urvanov-syntax-highlighter-plain-tag">Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' CSVファイルを読み込む変数の準備
        Dim sr As System.IO.StreamReader = Nothing

        '  CSVファイルが存在するかチェック
        If System.IO.File.Exists("./Test.csv") Then
            ' CSVファイルがあれば処理を行う
            ' インスタンス作成
            sr = New System.IO.StreamReader("./Test.csv")

            '  CSVファイルを最後まで読み取り
            ' RichTextへ出力をしていく
            While sr.Peek &gt;= 0
                Dim line As String() = sr.ReadLine.Split(","c)
                For Each item As String In line
                    Me.RichTextBox1.Text += item + vbCrLf
                Next item
            End While
        End If

    End Sub
End Class</pre><p>
While文を使って、CSVファイルを1行ずつ読み込んで処理をさせています。</p>
<p>&nbsp;</p>
<p>sr.ReadLineで読み込んだ内容をsplit関数を使って、</p>
<p>カンマを区切り文字として、String配列に格納しています。</p>
<p>&nbsp;</p>
<p>String配列に格納した値をFor Each文を使って1つずつ取り出し、</p>
<p>RichTextBoxに表示をさせています。</p>
<p>&nbsp;</p>
<p>vbCrLfは改行を表しており、1つずつを出力する際に改行をさせています。</p>
<p>実際にボタンを押して実行させた図を下に示します。</p>
<figure id="attachment_mmd_901" class="wp-block-image aligncenter"><img decoding="async" width="797" height="478" src="https://dreamparadaisu.com/wp-content/uploads/2020/10/vb_csv_3.png" class="attachment-full size-full" alt="" loading="lazy" align="center" /></figure>
<p>これでCSVファイルを読み込むことができました、お疲れ様です。</p>
<p><a href="https://px.a8.net/svt/ejp?a8mat=3BM2FI+941V3M+4380+HV7V6" rel="nofollow">「Tech Kids Online Coaching」無料体験会 詳細・お申込みはこちら！</a></p>
<img loading="lazy" decoding="async" src="https://www14.a8.net/0.gif?a8mat=3BM2FI+941V3M+4380+HV7V6" alt="" width="1" height="1" border="0" />
<h1>まとめ</h1>
<h3>CSVファイルを読み込むには、</h3>
<div class="sp-primary">System.IO.StreamReaderクラスを使う。</div>
<h3>読み込む前に、ファイルの存在確認を行う</h3>
<div class="sp-primary">System.IO.FileクラスのExistsメソッドを使う。</div>
<h3>全ての行を読み取るには、</h3>
<div class="sp-primary">System.IO.StreamReaderクラスのPeekメソッドを使う。</div>
<h3>1行の値を受け取るには、</h3>
<div class="sp-primary">System.IO.StreamReaderクラスのReadLineメソッドを使う。</div>
<div></div>
<div>ご覧いただきありがとうございます。</div>
<div></div>
<p>&nbsp;</p>
<p><strong><em>・こちらの書籍を参考にVB.Net勉強しています。</em></strong></p>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15976080%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059112 Visual Basic 2019 パーフェクトマスター"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9112/9784798059112.jpg?_ex=200x200" alt="Visual Basic 2019 パーフェクトマスター" /></div><p class="wpap-title">Visual Basic 2019 パーフェクトマスター</p><div class="wpap-creator">金城俊哉</div><div class="wpap-price">3,300円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F16273997%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784798059006 作って覚える Visual Basic 2019 デスクトップアプリ入門"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9006/9784798059006.jpg?_ex=200x200" alt="作って覚える Visual Basic 2019 デスクトップアプリ入門" /></div><p class="wpap-title">作って覚える Visual Basic 2019 デスクトップアプリ入門</p><div class="wpap-creator">荻原 裕之, 宮崎 昭世</div><div class="wpap-price">2,860円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>
<div class="wpap-tpl wpap-tpl-detail wpap-tpl-rakuten-books"><a href="https://hb.afl.rakuten.co.jp/hgc/g00q0728.wj9ire09.g00q0728.wj9isd7f/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F15009758%2F%3Frafcid%3Dwsc_b_ts_1064955924733071255" rel="nofollow" class="wpap-link" target="_blank" data-click-tracking="楽天ブックス 9784774190402 かんたんVisual　Basic改訂2版"><div class="wpap-image"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0402/9784774190402.jpg?_ex=200x200" alt="かんたんVisual　Basic改訂2版" /></div><p class="wpap-title">かんたんVisual　Basic改訂2版</p><div class="wpap-creator">高橋広樹</div><div class="wpap-price">2,904円<span class="wpap-date">(05/07 20:41時点)</span></div><div class="wpap-service">楽天ブックス</div></a></div>		<div class="wpulike wpulike-default " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="899"
					data-ulike-nonce="e37b4ed828"
					data-ulike-type="post"
					data-ulike-template="wpulike-default"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_899"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>The post <a href="https://dreamparadaisu.com/visualbasic_11/">【VB.Net】CSVファイルを読み込んでみる</a> first appeared on <a href="https://dreamparadaisu.com">リョクちゃの電脳日記</a>.<div class='yarpp yarpp-related yarpp-related-rss yarpp-related-none yarpp-template-list'>
<p>この投稿の関連記事が見つかりませんでした。</p>
</div>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">899</post-id>	</item>
	</channel>
</rss>
