文字コード表 ワンライナー

短くて結構実用的な HSP ワンライナー。

for i,,256:pos i/16*40,i\16*20:mes strf("%c",i):next

文字コード表。

短いコードにするための試行錯誤の記録。

// ループの書き方色々
// → for が一番短い 初期化も行うし優秀
;repeat 256:pos cnt/16*40,cnt\16*20:mes strf("%c",cnt):loop
;repeat 256:pos i/16*40,i\16*20:mes strf("%c",i):i+:loop
;*l:pos i/16*40,i\16*20:mes strf("%c",i):i+:if i<256:goto*l
;*l:pos i/16*40,i\16*20:mes strf("%c",i):i+:exgoto i,-1,256,*l
;for i,,256:pos i/16*40,i\16*20:mes strf("%c",i):next
;while i<256:pos i/16*40,i\16*20:mes strf("%x",i):i++:wend
;do:pos i/16*40,i\16*20:mes strf("%x",i):i++:until i>255

// pos i/16*40,i\16*20 が無駄っぽく感じる
// mes の自動カレントポジション移動でなんとかできないかな
//  → むしろ長くなってしまった :-c
;for i,,256:pos i/16*40,i\16*20:mes strf("%c",i):next
;for i,,256:if i\16=0{pos a,0:a+40}mes strf("%c",i):next

// 256 の一重ループ vs 16 x 16 の二重ループ
// → 一重ループの方が短い
;for i,,16:pos i*40,0:for j,,16:mes strf("%c",i*16+j):next:next
;for i,,256:pos i/16*40,i\16*20:mes strf("%c",i):next

// poke vs strf
//  → strf の方が短い poke は最初の文字列初期化がネック
;for i,,256:pos i/16*40,i\16*20:mes strf("%c",i):next
;s="":for i,,256:pos i/16*40,i\16*20:poke s,,i:mes s:next

// 最終コード
 for i,,256:pos i/16*40,i\16*20:mes strf("%c",i):next

インフォメーション

公開日時
2007年9月16日 午後0時58分31秒
最終更新日時
2007年9月16日 午後2時16分52秒
カテゴリ
HSP