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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1023
雨倉CLIでのパスワード認証について4解決


雨倉

リンク

2010/10/23(Sat) 16:49:04|NO.35478

今コマンドプロンプト上でパスワードを照合するプログラムを書いているのですが、うまくいきません。

症状としてはenterを押しても改行するだけで、
ラベルジャンプせず、延々とinputを続けてしまう感じです。

何かいい方法はないのでしょうか。
ちなみに、CLI上ではなく、GUIでは正常に動きます。

以下ソースです。

#runtime "hsp3cl"
*screen_init sdim pw,5000 mes "パスワードを入力して[ENTER]を押してください。" input pw,220 onkey gosub *in ;何か押された stop ;入力されるまで待っておく *in if wparam=13:goto *check;ENTER判定 return *check if pw="1234" { ;if pw="パスワード" goto *main ;あってたらここに飛ぶ *ラベル } else { dialog {"入力されたパスワードは正しくありません。 正しいパスワードを入力してください。"},1;間違えたときのメッセージ goto *screen_init ;入力画面をもう一度出す。 } stop *main dialog "成功"



この記事に返信する


cookies

リンク

2010/10/23(Sat) 17:10:04|NO.35479

やってみたところ*inラベルに飛んでいないのが原因ですね。

何を入力しても全然飛びません。

hsp3clではinput命令はENTERキーが押されると次の命令に移るようです。(hsp3clは使ったことありませんでした。)


#runtime "hsp3cl" *screen_init sdim pw,5000 mes "パスワードを入力して[ENTER]を押してください。" input pw,,1 ;よくわからない *check if pw="1234" { ;if pw="パスワード" goto *main ;あってたらここに飛ぶ *ラベル } else { dialog {"入力されたパスワードは正しくありません。 正しいパスワードを入力してください。"},1;間違えたときのメッセージ goto *screen_init ;入力画面をもう一度出す。 } stop *main dialog "成功"

input行の,,1のあたりはよくわかりませんがとりあえず。

参考 : http://fs-cgi-basic01.freespace.jp/~hsp/ver3/hsp3.cgi?print+200701/07030013.txt



cookies

リンク

2010/10/23(Sat) 17:25:23|NO.35480

input命令の使い方ありました。

(HSPインストールフォルダ)\doclib\hspprog.htmを参照してみてください。

引用:

#runtime "hsp3cl"
ランタイムが切り替わり、自動的にコマンドライン上で動作する状態になります。 尚、ウィンドウ、オブジェクト、マルチメディアに関する命令は使用できません。 sample/hspclフォルダに、HSPCL用のサンプルが収録されているほか、 sample/hspcl/cgiフォルダにCGIとして動作させる場合のサンプルがあります。

HSPCLでは、専用のinput命令が実装されています。書式は以下の通りです。

input p1,p2,p3 標準入力を取得

p1=変数名 : 情報を格納する変数名
p2=1〜 : 変数に代入される最大文字数
p3=0〜(0) : 改行コード認識フラグ(0=なし/1,2=認識)

・説明

標準入力の内容をp1で指定された変数に代入します。
p1で指定された変数は文字列型に変更され結果が代入されます。
この場合、文字列のサイズは、p2で指定した文字数までとなります。
p2の指定が省略された場合は、変数に代入できる最大値となります。
p3を省略するか、0を指定した場合は標準入力すべて(EOFまで)を
そのまま取得します。p3に1が指定された場合は、改行コード(13)を
終端として認識します。標準入力として、キーボード入力(コンソール)
を使用する場合には、p3を1または2にすることにより[Enter]キーで入力を
確定させることが可能になります。
(p3が1の場合はLFを、2の場合はCR+LFを改行として認識します)
通常は、文字列終端(文字コード0)までを取得しますが、p3の値に
16を加算することで、文字コード0を含む標準入力バッファ内容すべてを
変数バッファに取り込みます。バイナリデータなど0を含むコードを
取得する場合に指定するようにしてください。
入力結果の文字数はシステム変数strsizeに保存されます。

:引用終わり

とのことです。

なのでWindowsであれば、さっきのスクリプトのinputのところを
input pw,,2

Macなら
input pw,,1
にすべきでした。



雨倉

リンク

2010/10/23(Sat) 17:37:45|NO.35481

お二人ともわかりやすく、適切な回答をありがとうございました。



cookies

リンク

2010/10/23(Sat) 17:45:05|NO.35482

訂正です。

先ほど"Macなら input pw,,1"と書きましたが、
よく調べるとそれはMac OS Xのみだそうです。

MacでもHSP3CLとは思われませんが。



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