このツイートが気になったので、コモンイベントの文字変数の限界を調べてみた。
実験その1。
回数付きループを使用して1~10000までの数を代入・文字列に代入させてた後にファイル出力してみた。
結果、特に問題なく出力された。
ちなみにこのファイルのサイズは57.5KB。処理時間は3秒もかからなかった。
実験その2。
ループ階数を10万回にして、同じ実験をしてみた。
結果、処理に70秒以上(正確なタイムは不明)かかったものの、問題なく出力に成功。
ファイルサイズは672KB。
さて、この方法だとちょっと処理が重い。
というわけで、こんな方法をしてみた。
■文字列操作:CSelf5 = ""
■変数操作: CSelf0 = 0 + 0
■回数付きループ [ xx ]回
|■変数操作: CSelf0 += 1 + 0
|■文字列操作:CSelf5 += "\cself[0]\cself[5]"
|■デバッグ文:\cself[0]
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
■文字列操作:CSelf5 =<を→のファイルに出力> "test.txt"
■デバッグ文:完了!
要するに、自己代入を延々と繰り返す訳。
この方法なら、より早く文字列を長くすることができるはず。
で、25回くらいまでは数秒で完了。出力結果も問題なし。
ちなみに25回の時点で出力されたファイルは
32MBくらい……。
その後も26回、27回程度なら(時間はかかるものの)出力に成功しました。
ちなみに27回目のファイルサイズは
128MB。
現在公開中の作品の中で一番サイズが大きいうたクリ2ndの117MBを上回るサイズ。
さあ、続いて28回目ですが……。
フリーズしました
はい。
とうも27回目・128MBくらいが限界のようです……。
まあ流石に下手なフリゲよりも容量の大きい、
こんな長い文字列を扱うことはまずないと思いますが……。
参考までに今回テストに使ったコモンを
公開してみます(~2/7)。
ちなみにこのコモン自体は1KBも無い。
そこからこんなに大きなファイルを生成できるとは……すぅんごぉい……。
使い道?ある訳ないでしょ。