#author("2019-12-08T16:11:20+09:00","","")
#author("2020-05-10T09:56:39+09:00;2019-12-08T16:11:20+09:00","","")
#navi(../)
* テキストファイルを読み込む・ReadAllText,ReadAllLines [#oaf8f1e2]
テキストファイルを一度に読み込んでメモリに保持するC#とVisual Basic(VB)のサンプルコードを紹介します。~
うん十年前まではPCのメモリが少なかったので、一行ごとに読むサンプルコードが多かったと思います。~
今では、PCメモリも潤沢にある場合が多いので、一気に読み込んだ方が効率的でしょうね。

#htmlinsert(windev-top.html)
#contents

* 参考サイト [#od2258d9]
-[[Microsoft|.NET File.ReadAllText メソッド>https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.readalltext?view=netframework-4.8]]
-[[Microsoft|.NET File.ReadAllText メソッド>https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.readalllines?view=netframework-4.8]]

* 関連記事 [#se9afe45]
-[[StreamReaderを使ったテキストファイルの読み込み>.NET/テキストファイルの読込・StreamReader]]

#htmlinsert(windev-top.html)

* ReadAllText,ReadAllLines [#d19c5604]
この記事では、ReadAllText,ReadAllLinesの2つのメソッドを使ったサンプルコードを紹介します。~
ReadAllTextは読み込んだテキストを''String変数''に格納します。~
ReadAllLinesは読み込んだテキストを''String配列変数''に格納します。~

* サンプルコード [#w1d70557]
C#とVisual Basic(VB)のサンプルコードを以下に紹介します。

** C#サンプルコード [#ad0557c5]
 using System;
 
 class Program
 {
     static void Main(string[] args)
     {
         System.Text.Encoding enc;
         String f = @"C:\Windows\System32\drivers\etc\hosts";
 
         if (!System.IO.File.Exists(f)) {
             Console.WriteLine(f + "not found!");
             return;
         }
 
         enc = System.Text.Encoding.GetEncoding(932); // Shift_JIS
 
         String alltext;
         String[] allLines;
 
         alltext = System.IO.File.ReadAllText(f);
         allLines = System.IO.File.ReadAllLines(f);
 
         Console.WriteLine("-- ReadAllText --");
         Console.WriteLine(alltext);
         Console.WriteLine("-- ReadAllText line:" + allLines.Length + " --");
         foreach (String l in allLines)
         {
             Console.WriteLine(l);
         }
     }
 }
** Visual Basic(VB)サンプルコード [#c9272441]
 Module Module1
 
     Sub Main()
         Dim enc As System.Text.Encoding
         Dim f As String = "C:\Windows\System32\drivers\etc\hosts"
 
         If Not (System.IO.File.Exists(f)) Then
             Console.WriteLine(f & "not found!")
             Exit Sub
         End If
 
         enc = System.Text.Encoding.GetEncoding(932) ' Shift_JIS
 
         Dim alltext As String
         Dim allLines As String()
 
         alltext = System.IO.File.ReadAllText(f)
         allLines = System.IO.File.ReadAllLines(f)
 
         Console.WriteLine("-- ReadAllText --")
         Console.WriteLine(alltext)
         Console.WriteLine("-- ReadAllText line:" & allLines.Count & " --")
         For Each l In allLines
             Console.WriteLine(l)
         Next
     End Sub
 
 End Module

* 実行結果 [#a89c3659]
ReadAllTextとReadAllLinesのサンプルコードを実行したときの出力になります。~
本サンプルにより、以下の2つが確認できます。
+ReadAllTextはString変数に格納されている
+ReadAllLinesはStringの''配列''変数に格納されている

#ref(01.png)

以上、ReadAllText,ReadAllLinesメソッドを使ったテキストファイルの読込サンプルコードの紹介でした。

#htmlinsert(windev-btm.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS