- ベストアンサー
CSVファイルの特定行の削除
CSVファイルの特定行を削除するということは可能なのでしょうか? 可能であれば教えて頂けないでしょうか? お願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
書き換えるというよりは、 その行を除いて別のファイルへコピーするという方法が一般的ですね。 例:AをCSVファイルだとすると、 1.Bという空のファイルを生成する。 2.Aから1行ずつ読みBへ1行ずつコピーする。 ⇒削除したい行はコピーしない。 3.Aの最後行まで達したらAを削除し、BをAにリネームする。 こんな感じです。
その他の回答 (5)
- TAGOSAKU7
- ベストアンサー率65% (276/422)
テキストのままで、カンマ区切りなら無理です。 一度DBに取り込んで削除して吐き出すことならできますが・・・ 固定長なら ファイルを変数に読む(InputではなくGETでよむ) 特定行を探す 固定長だから1行のバッファ領域が決まっているので、その分を抜いてメモリコピーする ファイルに落とす。 ・・・それ以外の方法は#1さんの方法しか・・・
- imogasi
- ベストアンサー率27% (4737/17070)
CSVファイルはシーケンシャル・ファイルです。内容+CR+LF(CR+LFがないものも多い)が順次続いています。だから削除したいところをブランク+CR+LFにしても、内容がブランクになっただけでその後のレコードが前につめられるわけでは有りません。 昔から大型コンピュターで磁気テープを使ってシステムが作られていたときにも、たった1レコードを削除や追加するときも、新しいアウトプットテープを掛けて、インプットテープを全レコード読んで削除するレコードをとばしてそれ以外をアウトプットテープに書いたことを思いだしました。 ただシステム全体で、第一フィールドを「死にサイン」に設定し、削除したいとき、「死にサイン」フィールドに(例えば)「1」を書きこみます。 そしてそのファイルを使うあらゆるプログラムで「死にサイン」が1なら読み飛ばす約束にする。但し他人にそのファイルを渡す時はその申し会わせは有効でない。 こう言う不便さから、思う場所に追加出きるためにファイル構造が順ファイル以外に考えられています。
- Pesuko
- ベストアンサー率30% (2017/6702)
エディターで一行抹消は駄目ですか?
- todo36
- ベストアンサー率58% (728/1234)
リッチテキストボックスあるいはGrid系コントロールを 使えば出来るであろう。 しかし、No.1の方法がベストだと思いますが..
- y_herohero
- ベストアンサー率30% (72/239)
残念ながら無さげです…。
補足
ありがとうございます。 その方法は考えていたんですが・・・。 ほかのやり方って無いんですかね?