winsorkでデータを保持するには


ささ  2005-01-27 02:02:53  No: 119196

Winsorkであるデータが送られてきて
処理をしている最中に
データが数回送られてきた時
そのデータの2回分は、
処理後続けて処理されるのですが
その他のデータは、消えてしまいます
データを保持する方法
ないでしょうか?
環境は、VB6.0SP6  WIN2000  です


030  2005-01-27 03:20:54  No: 119197

「消えてしまいます」ではなくて「消している」んですよ。
あなたが作成したデータ取得処理の不具合です。
もう一度、設計を考え直してください。

どんな風に作ったか分からないので指摘のしようもありません。


ささ  2005-01-27 18:17:01  No: 119198

Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)

処理1(リモートIPとGETDATAのデータを使う)

IF 条件  then 処理2(リモートIPとGETDATAのデータを使う)

End Sub

Winsock_DataArrivalでアクション受けて処理をします
しかし、処理2の処理時間に約2分かかるときが有り
その間に来たデータを保持したいのですが
例えば、処理2の間に20回データが送られてきた時など


ねろ  2005-01-27 19:26:24  No: 119199

やり方は色々あるけれどDataArrivalの中で
    Do
        Winsock1.GetData str
        '処理
    Loop While str <> ""
こんなか
    Do
        Winsock1.GetData str
        If str = "" Then
            Exit Do
        End If
        '処理
    Loop
こんなことをしたらいかがですか。


  2005-01-27 20:35:53  No: 119200

ねろさん返信有難うございます
'処理
の処理中に
Sendされるデータが
数回来ます
'処理の処理時間が長い(約2分)
その間に(次に)
str = ""やWinsock1.BytesReceived=O  
になってしまいます


  2005-01-27 21:09:12  No: 119201

確認ですが
>str = ""やWinsock1.BytesReceived=O  
になる前にWinsockのエラーイベントは発生していますか?


ささ  2005-01-27 22:43:16  No: 119202

10060  
"タイムアウトのため接続できませんでした"
と出ています


ねろ  2005-01-27 23:39:22  No: 119203

その送られて来るデーターは大きいものですか?
それと、2分かかる処理の中に少なくても1秒に1回位 
DoEventsは入れることが可能ですか?


ささ  2005-01-28 01:24:32  No: 119204

2分かかる処理は、
EXCELにデータを貼り付ける処理です
DoEvents
が効くのでしょうか?


  2005-01-28 01:34:02  No: 119205

テストで単純にListenを開始してData_Arrivalの中で無限ループになる
ようなものを作ってみましたが、タイムアウトのエラーはでませんね。
そのエラーが再現する最小限のコードは提示できますか?

時間がかかるのが問題であれば、通信専用のアプリケーションと
エクセルにデータを貼り付けるアプリケーションを別々に作っておいて
通信専用アプリケーションはデータを受信したらファイルに書き出すなり
共有メモリに書き出すだけにしておき、もう一方のアプリケーションで
データが蓄積されたらエクセルに書き込こむという作りにしたらどうでしょう。


ねろ  2005-01-28 02:23:51  No: 119206

データーを始めに全部受け取ってから、
EXCELにデータを貼り付けるのでは、いけないんですか?


特攻隊長まるるう  2005-01-28 02:33:10  No: 119207

質問と直接関係無いですが、
>2分かかる処理は、
>EXCELにデータを貼り付ける処理です
↓過去ログ検索『Resize』で引っ掛かります。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200408/04080085.txt
既に使っておられる、もしくは応用できないデータの
形・状況であればゴメンナサイ。

…仕事で帳票作成とかデータ貼り付けてグラフ表示とか
やってるけど、2分も掛かった記憶が無いので…そっち
で改良できそうな部分がある場合は別スレッド立てて
下されば答えます。


ささ  2005-01-28 22:44:41  No: 119208

特攻隊長まるるう さん
有難うございました
>2分かかる処理は、
>EXCELにデータを貼り付ける処理です
一秒ですむようになりました

あと  Winsock_DataArrivalの方確認してみます


ささ  2005-01-29 01:15:37  No: 119209

EXCELにデータを貼り付ける処理です
一秒ですむようになり
"タイムアウトのため接続できませんでした"
のエラーはでなくなりましたが

1回分の保持はできるのですが
2回に移る時には、
str = ""やWinsock1.BytesReceived=Oになってします
処理中に来たデータは、一回分しか保持できないのでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加