CSV削除処理について – プログラミング – Home

通知
すべてクリア

[解決済] CSV削除処理について


ヒロ
 ヒロ
(@ヒロ)
ゲスト
結合: 24年前
投稿: 149
Topic starter  

VC++でCSVを最後に(COMMIT;時に)削除したいんですが
どのような構文で削除できますか?

if (t_Flag)
m_Glue.Commit();

else
m_Glue.RollBack();

return t_Flag;
教えてください。よろしくお願いします。


引用未解決
トピックタグ
ヒロ
 ヒロ
(@ヒロ)
ゲスト
結合: 24年前
投稿: 149
Topic starter  

開発環境はwindows2000 vc++6.0です。
unlink(D:\\WORK\\IMPORT\\HATUBAN.csv);
でやってみたんですがコンパイルエラーは出なくても削除もされていません。
何か間違った使い方なんでしょうか?


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
 

unlink の戻り値は正常だったんですか?


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

きっとオープンしっぱなしなので削除できなかったんでしょう


返信引用
ヒロ
 ヒロ
(@ヒロ)
ゲスト
結合: 24年前
投稿: 149
Topic starter  

>unlink の戻り値は正常だったんですか?
戻り値は出していませんでした。

>きっとオープンしっぱなしなので削除できなかったんでしょう
ファイルをCLOSEしなければいけないということですか・・・
クローズは単純に
close(D:\\WORK\\IMPORT\\HATUBAN.csv);
で良いでしょうか?


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

一度、ファイル操作周りの関数の使い方をキチンを勉強された方が良いと思います。

close(D:\\WORK\\IMPORT\\HATUBAN.csv);

と書かれた時点であなたが関数の説明をきちんと読んでいないのがわかってしまいます。

あと、うまくいかないときに関数の戻り値をチェックするのは基本なので
そこまでは自力でやってください。
エラーの意味がわかれば、対処方法が見えてくるはずです。
見えてこなければ、プログラム以前にOSの仕組みから勉強しないと
いけないかもしれないです。


返信引用
ku
 ku
(@ku)
ゲスト
結合: 24年前
投稿: 312
 

島さんのは想像ですから、まずは原因を調べましょう
ファイルをオープンしっぱなしの可能性が高いように思えますが
先入観(思いこみ)はデバッグをより困難な作業へ導きますから気を付けて
ここから先はヒロさんにしか解決できませんよ

> close(D:\\WORK\\IMPORT\\HATUBAN.csv);
それは無理ですね
fopenとかopen使ってます?(その場合はfcloseかclose参照)
僕は下記のライブラリを知らないのですが、こちらのライブラリで
csvのアクセスとかしてませんか?
それだと、その終了処理をそのライブラリのやり方に沿った方法でやらないといけません
m_Glue.Commit();
m_Glue.RollBack();

まずは原因究明です


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

>クローズは単純に
>close(D:\\WORK\\IMPORT\\HATUBAN.csv);
>で良いでしょうか?

それは私共には判りません。あなたがどのようにオープンしたか判っていないからです
ただ、普通の C/C++ では close(ファイル名) という事は出来ませんが、あなたが
何か特別なライブラリーなどをお使いで、その環境では可能かもしれません


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

>>unlink の戻り値は正常だったんですか?
>戻り値は出していませんでした。

でしたら戻り値を調べてみましょう。
エラーなどがあればその様に通知するのが普通ですので。
remove()の場合でも同様に戻り値を調べてみましょう。

>>きっとオープンしっぱなしなので削除できなかったんでしょう
>ファイルをCLOSEしなければいけないということですか・・・

開いたファイルが閉じてもいないのに削除されるのはおかしいと思いませんか?
fopen()で開いて、さてfread()等でデータを読もうとしたらそのファイルが消えていた。
なんてコトになっては困るでしょう?

>クローズは単純に
>close(D:\\WORK\\IMPORT\\HATUBAN.csv);
>で良いでしょうか?

どのようにファイルをオープンしたのか知っているのは貴方だけです。
掲示されたほんの数行から判断するのは無理です。
さらに、掲示されたコードがなにをしているのですか?
と聞かれていますよね?マルチポスト先で。

MSDN(2001/01)で引けるのは
CDatabase::Rollback()かCDaoWorkspace::Rollback()くらいです。
環境も不明ですのでコレ以上調べる手段もないような…

http://www.net24.ne.jp/~kenji/bbs/wforum.cgi?mode=allread&no=383&page=0


返信引用
ヒロ
 ヒロ
(@ヒロ)
ゲスト
結合: 24年前
投稿: 149
Topic starter  

皆さん色々とありがとうございます。
ファイル操作周りをもうチョット勉強してから出直します。
それでも分らない場合質問すると思いますがよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました