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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1003
大富豪ファイル(データ)のステータス取得3解決


大富豪

リンク

2023/10/3(Tue) 23:35:34|NO.100123

お世話になります。
たぶん無理だと思いますが・・・念のため;

HSP側で指定したファイル(データ)が、
保存処理中かどうかを見る事は可能でしょうか。

bmpsave, cvsaveなどファイル保存のコマンドを使うと、
保存が正常終了したかどうかstatで返ってきますが、
そうではなく、ファイルそのものの状態取得です。

データサイズが大きく保存処理に時間が掛る場合、
開く処理との干渉で出るアプリ側の不具合を回避したいためです。

可能ならHSP側から開こうとしているファイルが、
・既に開いている状態かどうか
・保存処理中かどうか
(アクセス中かどうか)を取得したいです。

宜しくお願いします。



この記事に返信する


窓月らら

リンク

2023/10/5(Thu) 09:29:33|NO.100144

APIを使って判定する方法もあった気がするのですが、ひとつの簡易的な方法を提示します。

2つの別のプロセスでテストします。
以下は判定用。こちらを先に起動しておきます。

// ファイルの状態を判定 msg="" mesbox msg,640,480 *main exist "R:\\test.dat" // ファイルサイズ(状態)を取得 msg+="strsize="+strsize+" " // strsize にファイルサイズが入る objprm 0,msg sendmsg objinfo_hwnd(0),$00B5,$0007,0 // 末尾行にスクロール wait 1 goto *main
以下はダミー書き込み用。パスは変更してください。
ストレージに負荷をかけるのでファイルサイズには注意してください。

// テスト書き込み sdim buf,512000*1024 // ファイルサイズ bsave "R:\\test.dat",buf // パスはテスト用です mes "ok"
ファイルがなければ -1
書き込み中は 0 が返ってくると思われます。
ただし、0バイトのファイルの場合も0なので注意です。



大富豪

リンク

2023/10/5(Thu) 20:36:38|NO.100148

> 窓月らら さん

ありがとうございます、
テストしてみました。

0か-1が返ってくるのは・・・
どこに表示されるのでしょうか・・・。

R:\\test.dat
これを同一ホルダーにある100MBのbmpに置き換えてテストしてみたのですが、
サイズの表示だけで・・・。
(loopの方を動かした状態でbmpを上書き保存しました)

もう少し確認してみます;



大富豪

リンク

2023/10/10(Tue) 18:32:35|NO.100184

Artlet2D/alSaveFile ですと、
保存状態の返しを読み取っているようですが、
その機能だけですとなかなか難しそうですので、
一旦終了という事で。

>窓月らら さん
ご対応ありがとうございました。



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