私はファイルがあります。私がメモ帳でそれを開くとき、私は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. メモ帳のMalayalamフォントを取得する
- 3. iosアドレス帳同様のアプリ
- 4. メモ帳++ <%erbとasp%と混同>
- 5. ファイル内の行にTxtファイルのファイル名を付けるメモ帳++
- 6. メモ帳++プラグインをCで作成#
- 7. メモ帳++とMySQL
- 8. メモ帳++ワークスペースリフレッシュ?
- 9. メモ帳++質問
- 10. メモ帳++ + fpcコンパイラ
- 11. メモ帳++コードスニペット
- 12. メモ帳++ - ハイライトカスタムキーワード
- 13. .plファイルをメモ帳で開きます
- 14. メモ帳にパテコンソールを使用++
- 15. Visual C++でファイルを非同期で読み取る方法は?
- 16. PHPDocメモ帳++のコメント?
- 17. メモ帳++下線タグ
- 18. HTMLヘルパーアプリケーションのメモ帳++
- 19. メモ帳++オープンダイアログ奇妙
- 20. キーパッドをメモ帳に送るには?
- 21. ファイルからデータを読み取るC++
- 22. Windowsでファイルを読み取る - C#ソリューション
- 23. C++でファイル名を読み取る
- 24. C++でファイルを読み取る
- 25. Tidy2をメモ帳に使用する++
- 26. メモ帳の読みやすさのために、Windowsのホストファイルでどの言語オプションをメモ帳で使用する必要がありますか?
- 27. 読み込みと同様に、別のプログラムでファイルを同時に追加する
- 28. アンドロイドで同様のブラウザの読み込みを行うには
- 29. C#ファイルを読み取り専用で読み取り/書き込みする
- 30. メモ帳で特定のコンテンツ行のみをコピーする方法++
んので... –