• 締切済み

C#でのファイル編集と上書き保存について

最近C#を勉強し始めて、ファイルの扱いに困っています。 別に用意してあるHTMLファイルを読み込み、そのファイルの一部の内容を書き換え(そのファイルの何行目の何文字目を変更するかは決まっています)、元のファイルに上書き保存するようなプログラムを作りたく色々と調べたのですが答えが見つかっていません。 ファイルの編集、保存は一回のみではなく、プログラムの動作中に何回も書き換えてその度に保存したいので、書き換える部分に変更はないですが数値は毎回変わります。 一部だけ変更が難しいなら、その一部だけ変更した行全体を丸々入れ替えてもいいのですが、それも方法がよくわかりません... お手数ですが、どうぞよろしくお願いします。

みんなの回答

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.2

>>もし変更が必要な個所を修正するメソッドをご存じなら、教えていただけたら幸いです... 紹介した本にある例ですと、以下の文字列の*1,*2,*3の部分を氏名、県名、敬称に置き換えてコンソール出力しています。 static void Main(string[] args) { const string name = "タロウ"; const string address = "千葉県"; const string keisho = "さま"; string s = "*2にお住まいの*1*3へご連絡がございます。"; Console.WriteLine(s.Replace("*1",name),Replace("*2",address),Replace("*3",keisho)); } この例は、stringのReplaceメソッドを、メソッドチェーンの考え方で置き換えています。 ただ、上記のような処理で、修正したい文字列を探すのではなく、正規表現を使って検索、置換するほうが楽なこともあると思います。 以下のページには、正規表現のことが書かれています。 http://dobon.net/vb/dotnet/string/regex.html

yono0410
質問者

お礼

ありがとうございます。 頑張ってみます!!

すると、全ての回答が全文表示されます。
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

素直に、目的のファイルを丸ごと読み込んで、変更が必要な箇所を修正し、全体を上書き出力すればいいんじゃあないですか? プログラム実行中に何度も書き換えるなら、変更と上書き出力を何度も行えばいいだけ。 まあ、実行効率の問題を思えば、もっといいやり方もあるでしょうが、さしあたりは上記の方法でいいと思います。 ちなみに、「C#ショートプログラミング(短いコードで生産性を高める必修テクニック)」って本には、 ・テキストファイル全体の読み込み ・文字列全体の書き込み といったサンプルコードが掲載されています。この本には、ファイル操作だけでなく、文字列操作など、イロイロと効率的なコードサンプルが掲載されていますので、参考になると思います。

yono0410
質問者

お礼

早速の回答、ありがとうございました。 紹介された本も探してみます。 もし変更が必要な個所を修正するメソッドをご存じなら、教えていただけたら幸いです...

すると、全ての回答が全文表示されます。

関連するQ&A