• ベストアンサー

UTF-8のTextファイルの置換

UTF-8で記述されたファイルをVBにて置換しようとしております。 置換する文字は、Tab→空白4個と"><"の間に改行を入れる置換を しようとしております。 AtEndOfStreamで読み込んで置換するのではないかと思うのですが それ以上が分かりません。 ご教授いただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

VBのバージョンは? バージョンによって劇的に回答が変わります。 今後は明記するように気をつけてください。 出来れば他の方々も。 …VB6だと私は分かりません。 文字コード指定で読み書きは…FSOとか使ってもたぶん出来ないですよね… (正直、FSO使ったこと無いんだけど) 最悪、バイナリとして読み込んで無理やり編集することになるかも? (何かやり方があるような気は しますが…) VB.NET(調べたのは2005)だと、 ・Encodingを指定してStreamReaderを使って読み込み ・普通にString.Replaceメソッド等で必要な変換を行う ・Encodingを指定してStreamWriterで書き込み …という手順で可能と思います。 以下の内容あたりをヘルプで調べながらやってみてください。 ・StreamReader コンストラクタ (String, Encoding) ・StreamReader メンバ ・String.Replace メソッド (String, String) ・StreamWriter コンストラクタ (String, Boolean, Encoding) ・StreamWriter メンバ ・Encodingクラス (System.Text) 少しだけヒントを書いておくと、StreamReader等で指定する「Encoding」は System.Text.Encoding.utf-8 でいけると思います。

men_tan
質問者

お礼

お礼が遅れてすみません。 VB6だったのですが、VB.Netにして教えていただいた方法を参考にして何とか作成することが出来ました。 ありがとうございました。

その他の回答 (2)

回答No.3

ANo.2です。 しまったすみません、 utf-8 じゃなくて UTF8 のようですね。 失礼しました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>読み込んで http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard30.htm >Tab→空白4個と"><"の間に改行を入れる IndexOfメソッドを調べてみては? 文字列から"><"の位置を取得する。 Substringメソッドで取得した位置を基に文字列を分ける。 その際にControlChars.NewLineで改行する。 上記はVBをVB2005として回答してみました。 (実際には検証してないんですが。。。) 他のバージョンでは違うかも知れません。 ご参考になれば。

関連するQ&A

専門家に質問してみよう