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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0904
hatoHSPTVにおけるランキング機能の仕様5解決


hato

リンク

2016/9/4(Sun) 22:29:08|NO.76792

今年のHSPコンテスト2016にHSPTV部門で参加させていただいてます。
ランキング機能のコメント文字列にデータを埋め込むと面白いことができそうですが、注意点もたくさんありそうです。
手元の環境ではうまく動作するけど、実際のインターネットサーバー上ではうまくいかないことも多いです。
結局私は断念してしまいましたが、仕様というか注意点というか、よくわからないことをまとめてみました。

・hsptvapp.asを使って管理できる
いままでhsptv.asしか知りませんでした。
いままでは投稿プログラム内にデバッグモードを仕組み、それを使って文字列データを管理していました。
hsptvapp.asとスタートアップコード(コンテストに登録すると割り当てられるコード)を使えば、
そのプログラムに該当するランキング情報を管理できます。

・インデックス0の情報をリセットできない
リファレンスを読むかぎり、下のスクリプトでランキング情報をリセットできると思いますが、

repeat 30
hsptv_up cnt,"",0x3000
loop

インデックス0の情報だけリセットできません。
データ領域を割り当てるときは、インデックス1以降を使ったほうが良さそう。

・文字数
リファレンスでは、1コメントあたり255文字まで(256ではない)送受信可能とのことですが、
半角64文字までしか確認できませんでした。
ちなみに、全角では32文字でした(2バイト文字?)。

・文字の調査
使用できる/使用できない文字を調べました。
調べた対象は、キーボード入力できる半角文字(半角英数字、半角記号、半角カナ)です。
全角文字や漢字は調べていません。

・使用できない文字
(改行)
コメント入力にmesboxを使うと入力できてしまうので注意。
inputでは改行を入力できない。

&
hsptvのリファレンスに記載されている通り、使用できません。

。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚(半角カナ)
半角カナも文字化けで使用できません。

・使用できる文字
\
エスケープシーケンスとして認識されると思いましたが、
入力ボックス上で入力すれば文字通り「\n」が送受信できました。
しかし、HSPスクリプト上の文字列"\n"では改行になります。

"
\と同じく使用可能。これもHSPスクリプト上で使うと文字列の整合性が崩れます。
(例)"----"----"

・結論
ランキング機能のコメント文字列にデータを埋め込むには

0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno

などの64通り(6ビット)の文字を使うと良さそう。
HSPスクリプト上の文字列定義では\に注意。



この記事に返信する


かの

リンク

2016/9/8(Thu) 22:49:25|NO.76815

> ・文字数

あらかじめ変数のバッファを確保しておいたらうまくいくと思いますが、いかがでしょう?


sdim ruser, 32, 30 dim rscore, 30 sdim rcomm, 256, 30 hsptv_up -1, "" repeat 30 hsptv_getrank rscore(cnt), ruser(cnt), rcomm(cnt), cnt loop



hato

リンク

2016/9/9(Fri) 01:27:26|NO.76821

ありがとうございます!
さっそく256バイトに拡張して試してみましたが、うまくいかず…でした。

サンプルソース:hsp34\sample\hsptvapp\hsptv_test.hsp

においても、コメント送信用変数を64バイトで初期化していたり、
公式でも仕様があやふや…なのでしょうか?
(送信用変数:
sdim comm,64

受信バッファrcommは初期化の定義がありませんでした)



K-s

リンク

2016/9/13(Tue) 01:32:11|NO.76863

文字数に関してですが、手元(ローカル)で試したところ、

hsptv.as → 255文字
hsptvapp.as → 64文字

と結果が異なりました。HSPのバージョンは 3.5β4 です。

あと hsptvapp の方、ローカルテストモードだとうまく機能していない気がしますね…
サンプルの hsptvapp_test.hsp、何度更新しても1位に上書きされたり、hsptvdat.txt を読み込んでくれない…
以前にネットワーク上で試した時はランキングの送受信はちゃんと機能してました。
ただその時はコメントは2,3文字しか使ってなかったので255文字使えたかは不明ですが。

hsptv の方だとちゃんと255文字使えると思います。



hato

リンク

2016/9/13(Tue) 06:11:51|NO.76865

hsptv + 実際のサーバー だと255文字まで使えそうです!

過去に投稿したプログラムにコメントしたら、70文字まで確認できました。
(それ以降の文字は画面からはみだして確認できませんでした。)

hsptvapp + 実際のサーバー だと、64文字までのようです。

投稿後にメンテナンス(スタートアップコードで外部操作)をしたいときは、
予め64文字のつもりでプログラム制作する…という感じでしょうか。



hato

リンク

2016/9/13(Tue) 06:29:51|NO.76866

使用できる/できない文字 にも環境による差異があるため、補足させてください。

・調査環境
(改行):hsptv + ローカル
半角カナ:hsptvapp + 実際のサーバー

半角カナは、ローカル環境では正しく動作してしまいます。



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