HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0121
初心者999ファイルの転送完了判断7解決


初心者999

リンク

2007/1/21(Sun) 15:11:32|NO.4980

デジカメの画像をPCに転送して画面に表示するスクリプトを作ろうとしています。
PCに転送するプログラムはメーカー製を使用しますが、シャッターを押すたびに次々に
リアルタイムで転送されてくるファイルをHSPで処理したいのですが、ファイルが完全に転送
されたかどうか調べるルーチンが分かりません。例えばpic001.jpgというファイルが転送され
てくる場合、転送に数秒かかるのでいきなり picload "pic001.jpg"とやるとうまく表示でき
ません。
すでにDISKに存在するファイルならOKですが、これから転送されてくるファイルが完全に
転送されたかどうか調べるにはどうしたらよいのでしょうか?
よろしくご教授ください。



この記事に返信する


トホホッティー

リンク

2007/1/21(Sun) 15:27:34|NO.4982

existでファイルがあるか調べればいいのでは?



初心者999

リンク

2007/1/21(Sun) 16:21:03|NO.4986

トホホッティーさん
早速の返事ありがとうございます。
早速ためしてみましたが以下のスクリプトで「ファイルがありません」のエラーがでます。
デジカメから転送される様子をみていると最初にpic001.jpgという名前がDISKに作られて
ファイル転送がはじまります。この時HSPは名前の存在を確認すると思うのですがファイル
はまだ完成していないからだと思うのですがいかがでしょう?
今一度ご教授お願いいたします。


Loadfile="C:\\Test\\pic001.jpg"       .       . repeat await 50 exist Loadfile if strsize ! -1:break loop picload Loadfile,0       .       .



ハテナ

リンク

2007/1/21(Sun) 18:07:16|NO.4988

exist の使い方を工夫して見てはどうでしょう。
ループの中でサイズを調べて
ある期間サイズの変化がなければ転送完全と考えられる。

勘で言っているのでうまく行かないかもしれません。
ファイルがロックされているか調べられれば
一番確実かもですね。(やり方分かりませんが)
結局的をえない回答ですみません。



トホホッティー

リンク

2007/1/21(Sun) 19:11:49|NO.4990

先ほどは失礼しました。

シリアルポートの通信の命令がHSPにありそうなのでそれを調べてみてはどうですか?

うろ覚えなので詳しくはお教えできないのですみません。



初心者999

リンク

2007/1/21(Sun) 22:45:03|NO.4994

ハテナさん、トホホッティーさんありがとうございます。

>ある期間サイズの変化がなければ転送完全と考えられる。
なるほど、やってみます。

>シリアルポートの通信の命令がHSPにありそうなのでそれを調べてみてはどうですか?
デジカメはUSBなのですがUSBポートの状態を調べるコマンド探してみます。

また分からないことがあったら質問させてください。



アキス

リンク

2007/1/22(Mon) 20:34:45|NO.5018

>トホホッティーさん
>シリアルポートの通信の命令がHSPにありそうなのでそれを調べてみてはどうですか?
シリアルポートの通信の命令はhspextプラグインにて存在しています。
この書き込みは蛇足かも。



初心者999

リンク

2007/1/24(Wed) 11:47:13|NO.5072

みなさんご教授ありがとうございました。
以下のような記述で成功しました。

これからもよろしくお願い致します。

repeat
await 10
exist Loadfile
if strsize ! -1:break
loop
repeat
filesize=strsize
wait 10
exist Loadfile
if filesize=strsize:break
loop
picload Loadfile,0



ONION software Copyright 1997-2018(c) All rights reserved.