- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2019-12-08T16:10:45+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]]
* 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の''配列''変数に格納されている
#br
#ref(01.png)
以上、ReadAllText,ReadAllLinesメソッドを使ったテキストファイルの読込サンプルコードの紹介でした。
#htmlinsert(windev-btm.html)