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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0205
じんみtxtファイル読みこみ6解決


じんみ

リンク

2011/2/5(Sat) 01:49:41|NO.36887

他のプログラミングツール(tonyu system)の変数を取得したくて、txtファイルを通してHSPの方に取り込むという方法を思いつきました。

notesel txt_buf noteload "test.txt"
一応これのループで最新の内容を読み込めます。しかし、更新タイミングのずれのせいか、
もう一方のプログラミングツールがtxtファイルに最新の内容を書き込んでいる途中(プロセスの使用中)にnoteloadを実行してしまい、
結果としてファイルが無効となり、強制終了されてしまいます。

どうにかしてもう一方のツールがtxtファイルのプロセスを使用していないときに読み込めるようにしたいのですが、
何かいい方法は無いでしょうか。



この記事に返信する


じんみ

リンク

2011/2/5(Sat) 01:59:54|NO.36888

すいませんちょっと勘違いしていました

もう一方のツールがtxtファイルのプロセスを使用していないときに
       ↓
tonyu syustemがtxtファイルを使用していないときに です



KA

リンク

2011/2/5(Sat) 07:52:11|NO.36890

更新時間やファイルサイズの監視じゃダメ。



ORZ

リンク

2011/2/5(Sat) 11:24:10|NO.36891

onerrorはこういうときに使えるような気がするんだが、使うなって書いてあるような気がするんだ。



ひらまる

リンク

2011/2/5(Sat) 12:53:00|NO.36892

昔、豆乳でオンライン対戦ができるプログラムを書いたことがあります。

そのときは、
どちらが今データにアクセスしているかの情報を扱うファイルを作成し、
ファイルの内容が0ならば豆乳、1ならばHSPがアクセス中なので、
双方、相手がアクセス中ならば、待つ。
という方法を取ったと思います。参考までにどうぞ。



ひらまる

リンク

2011/2/5(Sat) 13:23:48|NO.36893

と、思ったのですが、今試してみたところ、その方法ではエラーが出るので、新しい方法を考えました。
access.txtというファイルが存在するときは豆乳、存在しないときはHSPが処理をします。
HSP側

screen 0, 300, 100 title "コントローラー" mes "←↑↓→:移動" repeat stick Key, 1 + 2 + 4 + 8, 0 notesel CharPos CharPos = "" + Key repeat exist "access.txt" if strsize >= 0 { notesave "pos.txt" delete "access.txt" break } await 0 loop await 1 loop
豆乳側

extends DxChar; while(1){ //ファイルからキーの状態を入力 if ( fileExists( "access.txt" ) == 0 ) { pos= new FileReader("pos.txt"); l = valueOf( pos.readLn() ); Key = l; if ( Key == 1 ) AddX = -1; if ( Key == 4 ) AddX = 1; if ( Key != 1 && Key != 4 ) AddX = 0; if ( Key == 2 ) AddY = -1; if ( Key == 8 ) AddY = 1; if ( Key != 2 && Key != 8 ) AddY = 0; pos.close(); //ファイルの操作が終わったことを示すファイルを出力 access = new FileWriter( "access.txt" ); access.writeLn(1); access.close(); } //座標更新 X += AddX; Y += AddY; update(); }



じんみ

リンク

2011/2/5(Sat) 14:58:57|NO.36894

解決できました!

方法としては、ORZさんのonerrorによるテキストロードの行のスキップを、
ロード中のみ適用する形にしました。

これはHSP側が使用中の判定を行うのに対して、
ひらまるさんのは、tonyu側が使用中の判定を行うといったところでしょうか。

ありがとうございました。



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