私はファイルがあります。私がメモ帳でそれを開くとき、私はcharachtersを一行で見る。しかし、そのファイルをWordPadやNotepad++のような他のアプリケーションで開くと、私はcharachters間の不規則な改行を見ることができ、それらは複数の行に表示されます。これらの改行は、私がreader.Readline()
を実行すると表示されます。メモ帳をC#で行を読むのと同様に実行するにはどうすればよいですか?C#メモ帳同様にファイルを読み取る
答えて
var path = "c:/test.txt";
File.WriteAllText(path, "a\nb\r\nc");
using (var stream = File.OpenRead(path))
using (var reader = new StreamReader(stream, Encoding.ASCII))
{
var lineBuilder = new StringBuilder();
string line;
char currentChar;
int nextChar;
while (!reader.EndOfStream)
{
currentChar = (char)reader.Read();
nextChar = reader.Peek();
if (!(currentChar == '\r' && nextChar == '\n'))
{
lineBuilder.Append(currentChar);
}
if((currentChar == '\r' && nextChar == '\n') || nextChar == -1)
{
line = lineBuilder.ToString();
Console.WriteLine(line);
lineBuilder = new StringBuilder();
reader.Read();
}
}
}
このような違いは、通常、ファイルのエンコードに使用されるあいまいさのためです。ファイルの先頭を正しく解析するには、適切なエンコーディングを使用する必要があります。どの文字が問題を引き起こしていますか?また、 - ファイル上で(例えば)StreamReader
を作成するときにバイトが使用されるエンコーディングに法的でない場合は、すべてのベットは;-p
オフになっているあなたは、エンコーディングを指定することができます。
using (Stream stream = File.OpenRead(path))
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
ベース64を送信すると、問題は行の中央にある\r
になります。基本的な文字列としてこれを読むには、使用できます。ただ
byte[] data = File.ReadAllBytes(path);
string txt = Encoding.UTF8.GetString(data);
かを:
string text = File.ReadAllText("foo.txt");
しかし、あなたは常に困難これを表示しています。あなたのをの行末(おそらくcrlf)に設定してSplit
にすることができます。 StreamReader
は、のように見えるものに分割しています。のように行末があります。
string[] lines = s.Split(new string[] {"\r\n"}, StringSplitOptions.None);
を撃った私は添付可能性がしたいですここにファイルしてください。 –
確かに。ファイルの基礎となるバイトで「面白い」のように聞こえます。大きいですか?私は彼がライン終端用の\ rを\ nのシーケンスを使用したいと思いますBrijeshを理解している場合は、進/ 64進表現... –
MjAwOTAzMDR8RVVST3x8MDAwMDJ8RkZGRnwgfEF8U3w3MTB8TUxJICAgfCB8fA0gIHwgLjAwMDAwfCAuMDAwMDB8LjAwMDAwfDIwMDkwMzA0IDA4OjMxOjIzOjYxQU18IHwgfCB8IHwgICAgfHwgICAgfCB8LjAwfCAgIAの== –
これはあなただけのすべてのテキストをロードし、正規表現か何かを使用して行に分割できることが重要でない場合は、私からの第二の答えのために申し訳ありませんが、私はちょうど気づい
var path = "c:/test.txt";
File.AppendAllText(path, "lala\nlala\nlalal");
var text = File.ReadAllText(path);
Console.WriteLine(Regex.Split(text, Environment.NewLine).Length);
ファイルサイズがライブである簡単な答えを持っていません –
使用
:あなたはそうのような、Rの\ nを\次の文字を取得し、現在のかどうかを確認し、次のされているために、PEEKを使用することができます1内のすべての行を抽出するためにString[] lines = File.ReadAllLines("c:\\text.txt");
は、私は、単一のラインとして、それを参照してください。その唯一のメモ帳、それぞれが二つにラインを壊している、このファイルのエンコーディングセットのすべての種類を試してみました
- 1. メモ帳でメモを取る方法++?
- 2. Excel VBA - n番目の文字の後のメモ帳ファイルの読み取り
- 3. メモ帳で読むためのファイルを開いているC++で#
- 4. メモ帳/メモ帳++列の表示書式
- 5. メモ帳++
- 6. メモ帳++
- 7. C++/C gzファイルを同時に読み取る複数のスレッド
- 8. メモ帳のMalayalamフォントを取得する
- 9. tkfiledialogでファイルを開き、メモ帳でコンテンツを読む方法
- 10. iosアドレス帳同様のアプリ
- 11. メモ帳++ <%erbとasp%と混同>
- 12. メモ帳++プラグインをCで作成#
- 13. ファイル内の行にTxtファイルのファイル名を付けるメモ帳++
- 14. メモ帳++ - ハイライトカスタムキーワード
- 15. メモ帳++ワークスペースリフレッシュ?
- 16. メモ帳++とMySQL
- 17. メモ帳++コードスニペット
- 18. メモ帳要素
- 19. メモ帳++ファイルスタイル
- 20. メモ帳++ + fpcコンパイラ
- 21. メモ帳++質問
- 22. メモ帳++列エディタ
- 23. メモ帳ファイルをロックできますか?
- 24. .plファイルをメモ帳で開きます
- 25. C#メモ帳のタブで開くファイルをダブルクリック
- 26. メモ帳にパテコンソールを使用++
- 27. ログファイルを書き込んで、C++用にメモ帳でリアルタイムに読む方法
- 28. backsapceのメモ帳トリック
- 29. HTMLヘルパーアプリケーションのメモ帳++
- 30. Javaのメモ帳クラス
んので... –