DOBON.NET DOBON.NETプログラミング掲示板過去ログ

テキストファイルの任意の行を編集したい

環境/言語:[WinxpProSP1、VB.NET、WinCE.NET]
分類:[.NET]

過去ログを探してみましたが、発見できなかったので
質問させていただきます。

タイトルの通り、質問内容は
【テキストファイルの任意の行を編集したい】です。


(1)次のようなテキストファイルがあったとします。

 ファイル名:\Temp\TEST.TXT
 ファイルの中身:
  1行目:ABC01234
  2行目:DEF56789
  3行目:GHI01234
  [EOF]

(2)上記(1)のファイルの2行目を次の通りに編集します。

  2行目(旧):DEF56789
     ↓
  2行目(新):XYZ56789


【?】どのような命令を使用すれば、上記(1)〜(2)の処理を
実現できますでしょうか。

#StreamWriterを使用するところまでは調べられたのですが・・・

よろしくお願いいたします。
■No6804に返信(玉緒さんの記事)
> 2行目(旧):DEF56789
>     ↓
> 2行目(新):XYZ56789

これを「検索」をかけて「置換」するのでしょうか?
それとも、予め編集する場所が判っているのでしょうか?
明記はされておりませんが、普通に考えて「検索」が絡むと仮定します。

同一ファイルの、検索が絡むとSeek()は使いづらいので却下。
となると、一気に読み込み → 検索 → 置換 → 一気に書き込むのが良いでしょう。
ファイルサイズが大きいのならば、非同期にする工夫をするようにしてください。

> 【?】どのような命令を使用すれば、上記(1)〜(2)の処理を実現できますでしょうか。
「どこまで、わからないのか」が、わからないので、何とも言えませんが。
どのような「命令」を使えば良いかとありますので、メソッドだけ書いておきます。

 1. FileStreamのコンストラクタなどで、ファイルを開く。
 2. StreamReader.ReadToEnd()ですべてStringへ読み込む。
 3. そのStringで検索、置換をかける。
 4. そのStringを、StreamWrite([String])で一気に書き込む。
 5. Flush()して、ファイルを閉じる。
ありがとうございます!

上記方法で無事にできました!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板