ページ 1 / 1
教えてください
Posted: 2008年9月11日(木) 13:24
by recoba
20分おきにデスクトップ上に自動でexcelシートが記録されていく
加速度センサを使っています。
そこで質問ですが、このセンサは手打ちで保存先の名前を
変えないと上書きされてしまい、時間ごとの変化がみれません。
自動でexcelシートの名前を変更することができるでしょうか?
(20分おきに記録されるといいましたが、マクロのフリーソフトを
使っていますので、間隔を変えることは可能です。ただし、20分
たつと、もう1度クリックしないと記録は再開されません。 )
よろしくお願いします。
Re:教えてください
Posted: 2008年9月11日(木) 14:36
by バグ
発想を転換して、新しいファイルが出来る前に、今あるファイルの名前を変更してやればいいのではないでしょうか?
定期的(当然ですが、20分よりも短い間隔でないと駄目ですよ)にデスクトップ上のファイルを検索して、自動生成されるエクセルファイルの名前と同じものをみつけら、名前を変更してしまうというのでいいのではないでしょうか?
例えば、そのファイルのタイムスタンプを参照して、作成日時の年月日時分秒をファイルの名前にするとか…(2008年9月11日14時40分50秒ならば、20080911144050.xlsみたいな感じです)
Re:教えてください
Posted: 2008年9月11日(木) 14:55
by recoba
このセンサの利用目的の関係上、24時間の
測定が必要ですので、デスクトップ上にexcelシートが
きたら、連番などで自動で名前を変えてくれる必要性が
あります。。。
返信あるがとうございますm_m
Re:教えてください
Posted: 2008年9月11日(木) 15:24
by バグ
ん?ファイルの名前は何とでもできますよ。
recobaさんの開発環境を教えていただければ、簡単なサンプルを組みましょうか?
少し、お時間はいただきますが…(苦笑)
Re:教えてください
Posted: 2008年9月11日(木) 15:35
by 管理人
例えば今「Record.csv」という名前で吐き出されているとしましょう。
デスクトップ上にあるファイル情報を取ってきて、
Record*.csvに引っかかるファイルリストを作ります。
もしなければRecord.csvをRecord0000.csvに変更。
もしRecord0000.csvが既にあればRecord0001.csvに変更・・・。
このようにしていけば
Record0000.csv
Record0001.csv
Record0002.csv
Record0003.csv
Record0004.csv
といったファイルが出来ていくと思うので、数の一番大きなファイル名+1のファイル名に名前を変更してやれば良いと思いますよ。
ループは
例えば Sleep(20*60*1000);←1000ミリ秒×60秒×20分
のようにしておけば20分待機します。
Re:教えてください
Posted: 2008年9月11日(木) 15:57
by recoba
visual C++を利用しております。
すいませんが、よろしくお願いします。
Re:教えてください
Posted: 2008年9月11日(木) 16:34
by recoba
すいません補足です。
WindowsXPです。
Re:教えてください
Posted: 2008年9月11日(木) 19:38
by バグ
ごめんなさい、チェックする前にC#で作ってしまいました(^_^;)
添付したファイルをデスクトップに置いて実行してください。
検索ファイル名、保存先フォルダ、検査間隔の3項目を入力してからStartボタンを押してください。
検索ファイル名…拡張子込みのファイル名です。例えば"Test"というエクセルシートファイルならば、"Test.xls"と入力してください。
保存先フォルダ…保存先フォルダ名です。これはデスクトップに作成されますので、フォルダの名前だけでかまいません。
検査間隔…何秒に一度ファイルの検索を行うかの設定です。
設定を変更したい場合はStopボタンを押した後に変更してください。
Re:教えてください
Posted: 2008年9月11日(木) 20:16
by recoba
バグ様どうもありがとうございます。
すいません、質問ですが早速やってみたのですが、入力文字列が正しくありません。
と表示されましたm_m
また使っているセンサの関係上、full01.xls という名前で20分おきにデスクトップに
記憶されるのですが、これをフォルダに移動した場合、自動的に上書きされないのでしょうか?
すいませんがお答よろしくお願いします。
Re:教えてください
Posted: 2008年9月11日(木) 20:37
by バグ
フォルダ名か検索間隔に無効な文字が入力されているのだと思います。試しにフォルダ名を「TEST」、検索間隔を「5」と入力してみてください。
それから、逆に質問なのですが、加速度センサーのファイルというのは毎回作成されて、同じ名前のファイルが存在する場合は上書きされるんですよね?
Re:教えてください
Posted: 2008年9月11日(木) 20:55
by recoba
バグ様。
説明が不十分で申し訳ありません。
センサはSTARTを押すと20分間連続で記録することができます。
20分たつと自動でSTOPされてしまい、20分間の記録された値が
full01.xlsという形でデスクトップ上に記録されます。
マクロを使い、自動で再度クリックすることができるようになったので
またfull01.xlsという形で20分間連続で記録することができます。
よって、20分前~40分前に記録されたfull01.xlsが上書きされてしまいますので
上書きされる前に、自動で名前を変えることができないかと思いまして・・・。
検査間隔というのは、5秒に設定すると、5秒毎にデスクトップ上にfull01.xlsがないかを
チェックして、ある場合はフォルダに移動できるのでしょうか?
まことに申し訳ありませんが返信よろしくお願いいたします。
Re:教えてください
Posted: 2008年9月11日(木) 22:12
by フリオ
タイトルは、内容がわかるものにしてほしいです。
とにかく、その"マクロのフリーソフト"の仕様と、どこまで自動化したいのかを明確にしないと
話が進まないんじゃないでしょうか。
その"マクロのフリーソフト"がデータを書き込んでいる間は、
ファイル名を書き換えることができません。
したがって、"マクロのフリーソフト"がストップしてから、再スタートするまでの間に、
バッチファイル又はプログラムを使ってファイル名を書き換えるしかありません。
そしてその場合、ストップを確認した後、そのバッチファイル又はプログラムを動かし、
"マクロのフリーソフト"を再スタートする手間は残ります。
もし ストップの検知、ファイル名の書き換え、再スタート まで自動化したいなら、
その"マクロのフリーソフト"の仕様によっては、それ自身を書き換えるか、
あなたが望む機能を持った別のソフトを使う必要があります。
Re:教えてください
Posted: 2008年9月11日(木) 22:21
by recoba
フリオ様
フリーソフトは単純なものであり、左クリックを押すまでの間隔
を設定するだけのものです。
つまり1200秒に設定すれば、20分おきに1回左クリックするだけのものです。
すいませんがバッチファイルとはどのようなものでしょうか?
調べてみたのですが、よくわかりません・・・
特別何かダウンロードをする必要はありますか?
Re:教えてください
Posted: 2008年9月11日(木) 23:02
by バグ
20分間連続で計測ということは、その20分間はエクセルのファイルは触れないという事ですよね。
その加速度センサーは20分間の連続計測が終了したあとは、左クリックされるまでは完全にストップしているという解釈で間違いないですか?
それならば、私の作成したソフトに、加速度センサーの計測用ソフトに対してメッセージを発行してやる機能を追加してやればいけるかもしれません。
Re:教えてください
Posted: 2008年9月11日(木) 23:06
by recoba
バグ様
おっしゃる通りです。
Re:教えてください
Posted: 2008年9月11日(木) 23:21
by recoba
最初の20分の記録が終わり、「full01」がExcelとして
デスクトップ上に記録されたらそれをリネームして「full02」
として変換できるようにしたいです。
以下、03・・・・・100と「full01」をリネームして24時間の測定
ができるようにしたいです。
すいませんがよろしくお願いします。
Re:教えてください
Posted: 2008年9月11日(木) 23:27
by フリオ
>つまり1200秒に設定すれば、20分おきに1回左クリックするだけのものです。
なら、いちいちファイル名を書き換えなくても、86400秒に設定すれば、24時間計測できるのでは?
Re:教えてください
Posted: 2008年9月11日(木) 23:53
by recoba
フリオ様
センサは20分しか連続で記録ができないので
1日だと24×60÷20=72枚のエクセルシートが必要になってきます。
Re:教えてください
Posted: 2008年9月11日(木) 23:55
by バグ
>フリオさん
これまでの書き込みを読んだ感じでは、おそらく、加速度センサーの仕様で20分までしか連続で計測できないんじゃないかと思われます。
それで、20分間の計測データを毎回同じ名前で、新規作成or上書き保存してしまうので困っているという事だと解釈しています。
マウスクリックは計測開始の切っ掛けなだけなのだと思います。
ですから、マウスクリックのイベントを別プロセスから発生させてやればいいのかな…と思ったんですが、飛躍させすぎかな?(^_^;)
Re:教えてください
Posted: 2008年9月12日(金) 00:12
by recoba
バグ様のおっしゃる通りです。
毎回同じ名前で記録されるので、上書き保存されてしまうのです・・・
なのでデスクトップ上に最初のエクセルシートが記録されたらリネームをしてほしい
のですが簡単な方法はないものでしょうか・・・?
例えばですが、常に「1」という名前で記録される場合は、「2」にリネーム
次にまた「1」という名前で記録されたら「3」にリネームできるようになれば
24時間の測定が可能かと・・・
Re:教えてください
Posted: 2008年9月12日(金) 08:41
by バグ
1つ試していただきたいのですが、full01.xlsファイルを消去した状態で計測を開始してみてください。
その時、full01.xlsファイルが作成されるタイミングを見ておいてください。
そして、計測終了時にファイルが作成されるのか、計測開始と同時にファイルが作成されるのかを教えてください。
Re:教えてください
Posted: 2008年9月12日(金) 09:27
by たいちう
ちなみにそのフリーソフトが動いている途中で、人力でエクスプローラから
ファイル名を変更することはできるんですよね?
もしも、フリーソフトが20分間の計測中にエクセルファイルをロックしていて、
計測終了後直ちに次の計測に移るのならば、人力でもプログラムからでも
ファイル名の変更は困難(or 不可能)です。
エクスプローラからの挙動を書いてください。
> マクロを使い、自動で再度クリックすることができるようになったので
ひょっとしてエクセルのマクロ?
full01.xlsのVBAの部分がフリーソフト?
というわけで、フリオさんの書く通りなんですよね。
> とにかく、その"マクロのフリーソフト"の仕様と、
> どこまで自動化したいのかを明確にしないと
> 話が進まないんじゃないでしょうか。
Re:教えてください
Posted: 2008年9月12日(金) 09:32
by バグ
>>もしも、フリーソフトが20分間の計測中にエクセルファイルをロックしていて、
計測終了後直ちに次の計測に移るのならば、人力でもプログラムからでも
ファイル名の変更は困難(or 不可能)です。
エクスプローラからの挙動を書いてください。
そうなんですよ、私が引っかかっていたのも、正にココなんですよ。
もし、計測終了時にファイルを作成して、まとめて書き込むような仕様であれば、全く問題ないんですが、計測ソフト側に20分間ずっと占有されてしまっていては、なかなか難しいかな…と。
Re:教えてください
Posted: 2008年9月12日(金) 09:44
by バグ
>>recobaさん
あ、それから、『マクロのフリーソフト』の名前を教えてください。
フリーソフトならどこかでダウンロードされたのでしょうから、そのサイトを見ればどのようなものか検討がつくかもしれません。
Re:教えてください
Posted: 2008年9月12日(金) 10:44
by recoba
マクロ
TimerClick Version 1.0.0.0
仕様
・指定した位置を定期的に(自動で)左クリックする為のツールです。
・画面のカウントはクリックした回数を表示します。
→「9999999」を超えると「0」に戻ります。
・画面の「クリック間隔」にはミリ秒単位の値を入力します。
使用例
・画面の「クリック間隔」に「5000」と入力します。
・「開始」ボタンを押下するとともに、
定期的にクリックしたい箇所に
すばやくマウスカーソルを移動します。
(以降、5秒間隔で自動的にクリックされます。)
エクセルへの記録は20分の測定が終わった後です。
測定中はデスクトップへの記録はされません。
よろしくお願いします
Re:教えてください
Posted: 2008年9月12日(金) 12:25
by バグ
>>recobaさん
マクロというか、全く別のアプリなんですね(^_^;)
>エクセルへの記録は20分の測定が終わった後です。
という事は、そのファイルの生成が終了して、次の計測を行っている間はファイルに触っても問題無さそうですね。
という訳で、ソフトを改良しました。
改良点ですが…
1:別プロセスでファイルを操作している場合は、何もせずに待つようにしました。
2:何が起こっているかを分かりやすくする為に、ログを表示するようにしました。
3:移動させる際にフォルダ内のファイル数を元にファイル名を作成するようにしました。(例:ディレクトリ内にファイルが10個存在する場合は、full01_00011.xlsになります)
改良の3に関しては、recobaさんの希望していたものと少し違いますが、ご容赦ください。
これで試してみてください。
検査間隔はできるだけ短いほうが良いと思います。例えば1秒とかでも全然問題ないです。
Re:教えてください
Posted: 2008年9月12日(金) 14:08
by recoba
バグ様
さっそく使わせていただきましたが、フォルダにexcelシートが移動されませんでした。
私のやり方に問題点がなかったかご指示をいただければ幸いです。
①ソフトを起動させて、検索ファイル名と保存先フォルダと検査間隔を記入
(full01.xls a 1)
②センサのスタートボタンをクリックする。
この順番でやりましたが、ファイルはデスクトップ上に残っており、上書きされていました。
すいませんがよろしくお願いします。
Re:教えてください
Posted: 2008年9月12日(金) 14:24
by バグ
いきなりですが、ごめんなさい。1つ不具合がありました。
修正させていただきましたんで、最新版をお使いください。
ちなみに、やり方は問題ありません。
ログにはなんと表示されていますか?
こちらでは問題無く動いているのですが…?
Re:教えてください
Posted: 2008年9月12日(金) 14:29
by バグ
普通に動いた際の画像を貼っておきますね。
Re:教えてください
Posted: 2008年9月12日(金) 14:36
by recoba
検索を開始しました
とはでますが、実際にはデスクトップ上に残ったままです・・・
たえず上書きされる状態です・・・
Re:教えてください
Posted: 2008年9月12日(金) 14:42
by バグ
検索用ソフトの実行ファイルは、デスクトップに置いてありますか?
解凍した際に自動生成されるフォルダの中に入ったままになっていませんか?
Re:教えてください
Posted: 2008年9月12日(金) 14:45
by recoba
できました!!!
バグ様には大変お世話になりました。
ありがとうございますm_m
Re:教えてください
Posted: 2008年9月12日(金) 14:46
by recoba
解決です