最新閲覧日:

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

このQ&Aに関連する人気のQ&A

A 回答 (6件)

テキストのままで、カンマ区切りなら無理です。



一度DBに取り込んで削除して吐き出すことならできますが・・・


固定長なら
ファイルを変数に読む(InputではなくGETでよむ)
特定行を探す
固定長だから1行のバッファ領域が決まっているので、その分を抜いてメモリコピーする
ファイルに落とす。

・・・それ以外の方法は#1さんの方法しか・・・
    • good
    • 0

CSVファイルはシーケンシャル・ファイルです。

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

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

    • good
    • 0

リッチテキストボックスあるいはGrid系コントロールを


使えば出来るであろう。
しかし、No.1の方法がベストだと思いますが..
    • good
    • 2

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

    • good
    • 0

書き換えるというよりは、


その行を除いて別のファイルへコピーするという方法が一般的ですね。

例:AをCSVファイルだとすると、
1.Bという空のファイルを生成する。
2.Aから1行ずつ読みBへ1行ずつコピーする。
 ⇒削除したい行はコピーしない。
3.Aの最後行まで達したらAを削除し、BをAにリネームする。

こんな感じです。

この回答への補足

ありがとうございます。
その方法は考えていたんですが・・・。

ほかのやり方って無いんですかね?

補足日時:2001/11/26 15:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ