• ベストアンサー

名前を変えて保存

windows XPでC++を利用しています。 24時間の活動を記録をするため、センサを利用しています。 今使っているセンサはSTARTを押してSTOPを押すと full01.xls とデスクトップ上に記録されます。 しかし、20分たつと自動的にSTOPしてしまい、再度STARTを クリックしないと記録ができないようになっています。 (このことはマクロの自動クリックで解決できました。) そこで質問ですが、このときfull01.xls の名前を変えなければ 上書き保存されてしまい、以前に記録したデータが消えてしまいます。 なので、デスクトップ上にfull01.xls が来た場合に自動で名前を 変換できるようして、変換した後にfull01を削除したいのですが (20分おきに記録されていくので連番にできるようにしたい。  full02,full03・・・・・・full100) C++はまったくの初心者ですので どなたかよろしくお願いします。

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

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

C言語でWIN32APIを使ってみました。 同じフォルダに full01.xls があるか1秒毎に探します #include <stdio.h> #include <windows.h> #define FILENAME "full01.xls" /* このファイルを監視する */ #define FINDNAME "full" /* これで始まるファイルにリネームする */ int main(void) { WIN32_FIND_DATA fd; HANDLE handle; int n,max; char fname[256]; while (1) { /* 無限ループ */ handle = FindFirstFile(FILENAME, &fd); if (handle == INVALID_HANDLE_VALUE) { /* 見つからない */ Sleep(1000); continue; } max=0; /* 最大値を探す */ handle = FindFirstFile(FINDNAME"*.xls", &fd); if (handle != INVALID_HANDLE_VALUE) { /* 最初のファイルが見つかった */ do { n=atoi(&(fd.cFileName[strlen(FINDNAME)])); if (n>max) max=n; } while (FindNextFile(handle, &fd)); FindClose(handle); } max++; /* 1増やす */ /* 書き込むファイル名を作ってリネーム */ sprintf(fname,FINDNAME"%02d.xls",max); printf("%sを%sにリネーム:%s\n",FILENAME,fname,(MoveFile(FILENAME, fname))?"成功":"失敗"); } return 0; }

s0570063
質問者

お礼

ありがとうございます! さっそく実行してみます!!

その他の回答 (1)

回答No.1
s0570063
質問者

お礼

ありがとうございます。 参考にしてみます

関連するQ&A

  • エクセルの名前を自動で変更

    20分おきに自動的にデスクトップ上にexcelシートが たまっていくセンサを使っております。 そこで質問ですが、何もせずに放置しておくと自動的に上書き保存 されていくので、デスクトップ上にexcelシートがきたら自動で 名前を変更してくれるようにしたいです。 どのようにすればよいでしょうか? よろしくお願いします。

  • ワークブックに名前をつけて保存するマクロ

    教えてください!! ワークブックで名前をつけて保存するときのマクロなんですが、 自動記録すると下記のように記述されています。 ActiveWorkbook.SaveAs Filename:="C:\○○○\○○○\□□□□□.xls" この□□□□□の部分はインプットボックスを表示させたいのですが、 こういうマクロを組むことはできますか?

  • 自動で定時に名前を付けて保存するソフトありませんか?

    自動で定時に名前を付けて保存するソフトを探しています。 1日に1回か2回、上書きではなく連番などの適当な名前を(出来れば保存時間が入ったような)つけて決められたフォルダーに保存してくれるような便利なソフトありませんか?常にサーバーで開いているので時間を決めて自動で保存させたいです。 よろしくお願い致します。

  • エクセル:マクロ:保存時に連番をつける

    3シートついたエクセルファイル(雛形)をいつも使うのですが、2シート目のみをデスクトップにある「新しいフィオルダ」に保存したいのですが、マクロで「2シートに行って移動、名前をつけて保存」という過程を記憶させたのですが、いつも同じ名前でしか保存を記憶してないため、「上書きしますか」と出てきてしまいます。自動的に連番かなにかがついて上書きしないで全部ためときたいのですがどうしたらいいでしょうか。 よろしくお願いします。

  • windows7 名前を付けて保存について

    お世話になります。 昨日までそのようなことはなかったのですが、エクセルやワードで書類を作り「名前を付けて保存」を押すと、「上書き保存」画面が出てしまいます。 直し方をご存知の方は教えて下さい。 色々調べましたが、逆のパターン(上書き保存しようとすると名前を付けて保存画面がでてしまう)というのは結構あるようで、回答も沢山ありましたが、私のようなケースはまれなのでしょうか?回答が見つかりませんでした。 それから、今までは作業中のエクセルや、ワードで名前を付けて保存タブをクリックすると、作業中のエクセルファイルが入っているフォルダー画面が立ち上がるのですが、今は(上書き保存画面が立ち上がり、さらに)その画面に表示されるのがデスクトップ画面なので、いちいちフォルダーを探してクリックして、該当のファイルをクリックして保存する、という面倒な作業が増えてしまいまいした。 ※画像を添付してみました。(見えにくかったらすみません) 右の画像がエクセルやワードの作業の時に「名前を付けて保存」を押すと出てしまう画面です。 宜しくお願い申し上げます。

  • エクセルの上書き保存でエラーがでます

    上書き保存の際、次の二つのエラーが別々のファイルで出ます。 普通に上書き保存が出来る方法を教えて下さい。 ●「~.XLS」への変更は、共有違反のため保存できませんでした。別のファイルに保存しなおしてください。 ●「~.XLS」は、読み取り専用です。「~.XLS」を保存するには、OKをクリックし、名前をつけて保存ダイアログボックスで新しい名前を保存してください。  次の画面↓ 使用中のファイルへは編集のためロックされています。使用者は~です。読み取り専用で開くかまたは、読み取り専用で開き他の人がファイルの使用を終了したときに通知を受け取るには「通知」をクリックします。 と表示されます。どうぞよろしくお願いいたします。

  • Excelの上書き保存

    作成したExcelファイルをダブルクリックで開くと、 どのファイルも必ず「ファイル名1.xls」という名前で開きます。 上書き保存をしようとすると 「ファイル名をつけて保存」の画面が出てきてしまいます。 Excelを起動してから、ファイルを開くと 通常通り、上書き保存もできますし、 ファイル名の後ろに1がついたりもありません。 業務上、作成したファイルを上書き保存することが多いので、 ダブルクリックでファイルが開き、 編集後はすんなり上書き保存ができるようにしたいのです。 分かる方は、解決策を教えてください! ファイルを開くときに名前が書き換わってしまうなんて事、 あるのでしょうか??

  • 2003の表が2007で書き込み後保存できない

     WxpでExcel2003で作成した表をW7のExcel2007で表示し、必要な書き込みを終えた後、上書き保存しようとしたが、....xlsは読み取り専用です。コピーを保存するには「OK]をクリックし、「名前を付けて保存」ダイアログボックスで新しい名前で保存してください。と表示されるので、[Ok]をクリックすると、「名前を付けて保存」のボックスが表示されるので、ファイル名に「新しい名前」を入力して「保存」をクリック。そうするとああ:¥いいいいXls(保存先)この場所には保存するアクセス許可がありません。管理者に連絡してアクセス許可を取得してください。代わりに「マイドキュメント」フォルダに保存しますか。{はい}{いいえ}。因みに「はい」をクリックして「マイドキュメント」に保存した「ああ:\いいいいXls」を開いて、書き込み、保存を試みたが、前項と同じ結果でした。2003の表が2007で表示ができ書き込みはできるので、保存をするにはどういう手順が必要なのか、難しいことは分からない年寄ですので、わかりやすく、イロハの手順でご教示をお願いします。

  • 上書き保存されない

    saveメソッドを使用しているのですが、上書きされないのです。 最初に名前をつけて保存で保存し、処理の最後にブック名を変数にして、saveで上書き保存しているのですが、なぜか教えてください。 Dim wb集計 As Workbook ActiveWorkbook.SaveAs Filename:="c:\集計.xls" 集計 = "集計.xls" Set wb集計 = Workbooks(集計) ~割愛~ wb集計.Save

  • パソコンの名前

    あなたならなんとつけますか? 職場で使う15台(今後増える可能性あり)のパソコンの名前で悩んでいます。 スタートボタンを押すと出るスタートメニューの一番上に表示されるアレです。 ただ1号、2号、…(A、B、C…や、あ、い、う…)と連番で振るのは最終手段というか。 ちょっとかわった面白いものをさがしています。 本当は 睦月・如月・弥生・・・にしたかったんですがそれだと12個までしかなくて。 いいアイディアがありましたらよろしくおねがいします!