• ベストアンサー

CSVファイルの特定行の削除

CSVファイルの特定行を削除するということは可能なのでしょうか? 可能であれば教えて頂けないでしょうか? お願いします。

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

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

書き換えるというよりは、 その行を除いて別のファイルへコピーするという方法が一般的ですね。 例:AをCSVファイルだとすると、 1.Bという空のファイルを生成する。 2.Aから1行ずつ読みBへ1行ずつコピーする。  ⇒削除したい行はコピーしない。 3.Aの最後行まで達したらAを削除し、BをAにリネームする。 こんな感じです。

dmn
質問者

補足

ありがとうございます。 その方法は考えていたんですが・・・。 ほかのやり方って無いんですかね?

その他の回答 (5)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.6

テキストのままで、カンマ区切りなら無理です。 一度DBに取り込んで削除して吐き出すことならできますが・・・ 固定長なら ファイルを変数に読む(InputではなくGETでよむ) 特定行を探す 固定長だから1行のバッファ領域が決まっているので、その分を抜いてメモリコピーする ファイルに落とす。 ・・・それ以外の方法は#1さんの方法しか・・・

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

CSVファイルはシーケンシャル・ファイルです。内容+CR+LF(CR+LFがないものも多い)が順次続いています。だから削除したいところをブランク+CR+LFにしても、内容がブランクになっただけでその後のレコードが前につめられるわけでは有りません。 昔から大型コンピュターで磁気テープを使ってシステムが作られていたときにも、たった1レコードを削除や追加するときも、新しいアウトプットテープを掛けて、インプットテープを全レコード読んで削除するレコードをとばしてそれ以外をアウトプットテープに書いたことを思いだしました。 ただシステム全体で、第一フィールドを「死にサイン」に設定し、削除したいとき、「死にサイン」フィールドに(例えば)「1」を書きこみます。 そしてそのファイルを使うあらゆるプログラムで「死にサイン」が1なら読み飛ばす約束にする。但し他人にそのファイルを渡す時はその申し会わせは有効でない。 こう言う不便さから、思う場所に追加出きるためにファイル構造が順ファイル以外に考えられています。

  • Pesuko
  • ベストアンサー率30% (2017/6702)
回答No.4

エディターで一行抹消は駄目ですか?

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

リッチテキストボックスあるいはGrid系コントロールを 使えば出来るであろう。 しかし、No.1の方法がベストだと思いますが..

回答No.2

残念ながら無さげです…。

関連するQ&A