VS2019C#FormApplicationで開発しています。
テキストボックス1とテキストボックス2にそれぞれ以下のように入力してそれぞれ1行ずつ取得しListに格納しようと思ったのですが、1つ気になることがありました。
1だと文末はCになるのですが2だと文末はcの次の行になるので取得する場合何もない箇所を空白として取得するのが正しいと考えました。実際に取得すると1と2どちらもcまでしか取得できず、2の文末を認識していないようでした。(読み込み方法はこちらのサイトを参考にしています。)
1と2の文末をそれぞれ取得し、もし文末の前に文字がない場合そこを空白にして取得したいのですが、やる方法がわかりません。どなたかご教授お願い致します。
テキストボックス1
C#
1a 2b 3c ←文末
テキストボックス2
C#
1a 2b 3c 4←文末
POSIX の仕様ではテキストファイルは行の集合であり、各行は改行で終わります。
これに合わせたのではないしょうか。
つまり最終行は c であり、その次に行はありません。
c の行に改行が無かった場合もあるものとして扱うのが便利なので、たいていのアプリでは改行のない最終行をちゃんと行として扱うようになっています。
>>Zuishin様
回答、解説ありがとうございます。
つまり2は自動的VS上でcが最終行だと認識していて1と2では同じになっているという解釈で問題ないでしょうか?
回答はしていません。実際にどのような挙動になるかを自分で確かめたのであればそれが全てです。
私の書いたものは「なぜ」の理由を推測したものにすぎません。
なおそこで使われている ReadLine は改行を除去するため、これを使う限り区別することはできません。
ReadAllText を使うべきでしょう。
どのようなソースでためされましたか?
>>KIYOSHI様
https://www.itlab51.com/?p=1709
こちらのサイトを参考にしました。
回答1件
あなたの回答
tips
プレビュー