OS:Xp Home
メモリ:512MB
HDD:80BGを3分割 空き容量Eを除き10GB前後
デバッグ実行をすると、最初はエラーの続出、これは当然ですが・・・
エラーを修復して、エラーのでなくなったとき、いきなり強制終了です。
ファイルは、通常のBASICファイル(行番号なし)です
eメールでの質問を試みましたが、アドレスが存在しませんでした。
旧タイプの表記方法では作動できなくなったのでしょうか
このような表記です
省略(dim宣言は終了しています)
Chk$="Documents and Settings"
do
Ky$=Input$(1)
select case K$
case Chr$(13)'エンターキーで入力終了(exeファイルにするときはChr$(27)がいい)
Exit do
case "z"
K$="d"
case "x"
K$="r"
case "c"
K$="m"
case "v"
K$="f"
case "b"
K$="s"
case "n"
K$="l"
case "m"
K$="c"
長いので以下略
TABインデントは消されるようです。
強制終了してしまう
Re: 強制終了してしまう
見たところ、なにをするプログラムかちょっとわからないんですけど、
Select文で「String」型は使えなかったと思います。
Select文で「String」型は使えなかったと思います。
Re: 強制終了してしまう
レス、ありがとうございます。
> 見たところ、なにをするプログラムかちょっとわからないんですけど、
キーボードを鍵盤に見立てて演奏するような感じで打ち込んだキーに対応する文字をファイルにするプログラムです。
使うソフトはフリーソフトのMUSEです。
VBSでなら簡単に作れますが、打ち込んだ文字が画面に反映されないために
BASICで作ろうと思いました。
Ver2.62ではIF文の塊となっています。
> Select文で「String」型は使えなかったと思います。
#prompt
Dim i%
for i%=0 to 25
Select case Chr$(i%+65)
Case "A","D","H","X","Y"
Print Chr$(i%+65);"---"
Case else
End Select
Next
文字列でも動作しました。
これだと動くということは、プログラムのどこかに問題があるようです。
バグが隠れている可能性もありますが、メールが届かないために打つ手がありません。
どこでエラーが起きているのかさえも分かりませんが…Select Caseが
使えるということだけでも、かなりの価値はあります。
とにかく・・・まともなソフトはQuickBASICでしか作っていません。
そのために文法の大幅に異なるVBやCでは作れないのです。
Windows以前のDiskBASIC~MS-DOS時代は高速化を費用とする部分のみ
アセンブラで作っていました(PC9801~BX)
横着のためにソフト作りを始めた次第です・・・
> 見たところ、なにをするプログラムかちょっとわからないんですけど、
キーボードを鍵盤に見立てて演奏するような感じで打ち込んだキーに対応する文字をファイルにするプログラムです。
使うソフトはフリーソフトのMUSEです。
VBSでなら簡単に作れますが、打ち込んだ文字が画面に反映されないために
BASICで作ろうと思いました。
Ver2.62ではIF文の塊となっています。
> Select文で「String」型は使えなかったと思います。
#prompt
Dim i%
for i%=0 to 25
Select case Chr$(i%+65)
Case "A","D","H","X","Y"
Print Chr$(i%+65);"---"
Case else
End Select
Next
文字列でも動作しました。
これだと動くということは、プログラムのどこかに問題があるようです。
バグが隠れている可能性もありますが、メールが届かないために打つ手がありません。
どこでエラーが起きているのかさえも分かりませんが…Select Caseが
使えるということだけでも、かなりの価値はあります。
とにかく・・・まともなソフトはQuickBASICでしか作っていません。
そのために文法の大幅に異なるVBやCでは作れないのです。
Windows以前のDiskBASIC~MS-DOS時代は高速化を費用とする部分のみ
アセンブラで作っていました(PC9801~BX)
横着のためにソフト作りを始めた次第です・・・
昔こんな風にしたら上手く動いた記憶が。
ところで、この2行は間違いに見えるのですが。
コード: 全て選択
select case Asc(K$)
case 13
Exit do
case Asc("z")
K$="d"
case Asc("x")
...
ところで、この2行は間違いに見えるのですが。
コード: 全て選択
Ky$=Input$(1)
select case K$ '←Ky$ or K$
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
Re: 強制終了してしまう
> キーボードを鍵盤に見立てて演奏するような感じで打ち込んだキーに対応する文字をファイルにするプログラムです。
GetkeyStateを使えばいいと思います。(チェックする分だけ)
↑のプログラムは「全部のキー」をチェックするプログラムになってますが...
重要な部分は「'1」の行だけです。はい。
iにはASCIIコードが入ります。Asc("")でいいです。
ちなみに、余談ですが、MUSEなどを使わず音楽(MIDI音源を直接)を鳴らしたいをのなら
midiOutOpen、midiOutClose、midiOutShortMsg、などを使えといいです。
GetkeyStateを使えばいいと思います。(チェックする分だけ)
コード: 全て選択
Dim i As Integer
for i=0 To 255
if GetKeyState(i) And &h80 Then '1
'ここで押されていたの処理
End if
next
重要な部分は「'1」の行だけです。はい。
iにはASCIIコードが入ります。Asc("")でいいです。
ちなみに、余談ですが、MUSEなどを使わず音楽(MIDI音源を直接)を鳴らしたいをのなら
midiOutOpen、midiOutClose、midiOutShortMsg、などを使えといいです。