【array[1] = 】MortScript
Since 2007/02/22
1-100
101-200
201-300
301-400
401-500
501-600
601-700
701-800
801-900
901-990
759 :
いつでもどこでも名無しさん
:2007/10/13(土) 22:53:00 ID:MfXivqKt0
すみません質問させてください。
プログラムはじめてなのでトンチンカンなことしてたらすみません。
例えばwhile文を入れ子にして繰り返し処理をしたいのですが以下のスクリプトですと
0000〜9999を表示(1万回表示)させるのにsleepMessageを使ってるので最低1秒の設定で1万秒かかってしまいます。
処理してる進行状況を表示させるのに他によい方法ないでしょうか?
a = 0
b = 0
c = 0
d = 0
while(a<10)
while(b<10)
While(c<10)
While(d<10)
#abcdを表示
SleepMessage(1,a & b & c & d)
d = d + 1
EndWhile
d = 0
c = c + 1
EndWhile
c = 0
b = b + 1
EndWhile
b = 0
a = a + 1
EndWhile
またWhile文を入れ子にしすぎるとメモリ食い過ぎで処理の途中で止まるとかあるんでしょうか?
760 :
1
:2007/10/13(土) 23:21:56 ID:???0
>>759
動的に表示を変えるダイアログボックスやプログレスバーは
MortScriptには無いので、無理っぽいです。
While文を入れ子にしすぎた場合、「メモリを食う」というよりは
CPUに負荷が掛かり過ぎて重くなり、最悪フリーズする
といった状況は考えられますね。
761 :
いつでもどこでも名無しさん
:2007/10/13(土) 23:28:28 ID:???0
>>760
すばやい回答ありがとうございます。
表示はあきらめます。
while文は意図した動きをしないのですが(1000回超えたあたりでとまる)もう少し試行錯誤してみます。
ありがとうございました。
762 :
1
:2007/10/14(日) 00:13:10 ID:???0
>>761
>>759
のスクリプトの
SleepMessage(1,a & b & c & d) を削除し、
最後に Message(a & b & c & d) を追加して走らせたところ、
約30秒で処理を終了し、
問題なく「10000」を表示しました。
使用メモリは45kBでした。
1-100
101-200
201-300
301-400
401-500
501-600
601-700
701-800
801-900
901-990