行の削除

タグの編集
投稿者 ugonight  (中学生) 投稿日時 2011/5/3 09:50:58
ファイルの中で2行目と3行目だけを削除して4行目以降を上に詰める方法を教えてください。
(例)あ
   い
   う
   え
   お
    ☟
   あ
   え
   お
投稿者 shu  (社会人) 投稿日時 2011/5/3 10:00:31
読み込み中に必要な部分だけを読み込み不要な部分を
とばしてすべて読み込んだら書き戻すとよいかと思います。

大きなファイルだとするとある程度読み込んだら別のファイルへの
書き込みを行うのを繰り返し全ての読み書きしたら元のファイルを消して
別に作ったファイルの名前を変更するとよいかと思います。
投稿者 ugonight  (中学生) 投稿日時 2011/5/4 15:49:56
すごく大変でしたけどうまくいきましたありがとうございます!!
投稿者 るきお  (社会人) 投稿日時 2011/5/4 16:32:08
こんな方法もあります。
  
Dim lines As New List(Of String)(IO.File.ReadAllLines("C:\vb\test.txt"))
lines.RemoveAt(1)    '2行目を削除 
lines.RemoveAt(2)    '3行目を削除 
IO.File.WriteAllLines("C:\vb\test.txt", lines)


ただし、この方法はメモリ上にテキストファイルの内容をすべて読み込んでから処理するので、
対象のテキストファイルのサイズが大きい場合にはよくないです。
私の感覚ではテキストファイルのサイズが数百KB程度ならこの方法でやってしまうかもしれません。

正攻法はshuさんの方法です。
投稿者 ugonight  (中学生) 投稿日時 2011/5/4 18:58:43
るきおさんありがとうございます。とても簡単に出来ました