#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)