VisualBasic2005を勉強中の者です。Shift-JISのテキストファイルを変数str1に読み込み、その改行をReplace(str1, Vbcrlf, "")で削除し、改めて別のファイルに同じくShift-JISで書き出そうとしているのですが、どうしても改行が残ってしまいます。なぜでしょうか。なお、バイナリエディタで見るとその改行は「0A」となっています。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/09/26 19:06:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:tokuya_n No.1

回答回数56ベストアンサー獲得回数7

ポイント60pt

str1= str1.Replace(vbCrLf, "")

とすべきなのではありませんか?

id:crashtruck

ありがとうございます。しかし、そうしても同じ結果です。

2006/09/26 19:03:33
id:daggersherkee No.2

回答回数61ベストアンサー獲得回数2

ポイント10pt

0Aということは確かに改行がはいっています。

Replaceされたあとの文字列にないのであれば

保存方法に問題がないですか?

  • id:tikirou
    とりあえずヒントをば。

    ラインフィード vbLf(0A)
    キャリッジリターン vbCr(0D)
    改行 vbCrLf(0D & 0A)






  • id:KirakiraHikaru
    読み書きするとき、
    各関数の引数(Encoding)に
    System.Text.Encoding.GetEncoding("shift_jis")
    を指定していますか?
  • id:dungeon-master
    もともとのファイルの改行コードがCR+LFではなく、LFだけなのかもしれません。
    念のため、str1= str1.Replace(vbLf, "") もやってみる。
    それでもLFが残っているなら、書き込むときにくっつけていたり、
    読み込んだ時の文字列を書き込んでいたりしないか調べる。


  • id:crashtruck
    皆様ありがとうございます。手違いで、ご解答に気づきませんでした。VbLfでもReplaceしたらできました。文字コードがらみのことを勉強したく思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません