初めて質問させて頂きます。 よろしくお願い致します。
現在、複数行のファイルを読み書きするようなコードを書いているのですが、
任意の行を消去するアルゴリズムがうまく思い浮かびません。
任意の行だけを飛ばして書き直すという方法も考えましたが、
非常に低速になる恐れがあると考えたので、 それ以外の方法で良い物を
ご存知の方が居りましたら、 どうかご教授願います。
[追加]
シーケンシャルアクセスでの読み書きで、行数は不特定です。
そうですねえ、わたしの考えつく方法は、2種類ありますが…。
一つは、リスト構造で各行を保持するということ。
行ごとに文字列を区切って、リストの各項目に格納しておきます。
行削除の際は、インデックスがふってあるならそれを参考にします。
なければ、リスト項目を、任意行までたどって行かなくてはいけなくなります。
VBにはリスト構造はない(クラスで作らないといけない)ので、そこからちょっと面倒ですが。
もう一つは、配列を使うこと、
この場合、任意行を削除したら、その穴を埋めなくてはならないので、
残りの文字列をシフトし、ReDimしなければいけません。
そうそう、読み込み中に削除するという処理ですが、
わたしには任意行の読み飛ばし(空読み)しか思いつきませんでした。
ただ、いくつも削除項目があるなら別ですが、
そうでなければその方が、リスト構造や配列管理なんかより早いかもしれません。
配列を使うという手段は思いつきませんでした。
非常に参考になりました。 ありがとうございました。