ゲームを作りたい人のための ソースコード集

私がその日作った短めのソースを簡単な解説とともに載せていきます
ゲーム制作初心者にとって参考になるかもしれないソースが多いです


<< ウィザードリィ風3D視点 | main | 二次元配列(文字列型)の並べ替え >>



文字数を指定してバイト数を取得

HSPには、文字列の長さをバイト単位で取得したり(strlen)、

バイト数を指定して文字列を取得する関数(memcpy)があります

しかし文字数を指定し、それが何バイト分になるかを確認する関数はありません

 

以下のプログラムは、1バイト文字と2バイト文字が混ざった文字列を元に

指定の文字数のバイト数がいくつになるかを求めています

#define global ctype peekget(%1="",%2=0,%3=0) _peekget(%1,%2,%3)
#module
#defcfunc _peekget var p1,int p2,int p3
    if p2<0:return 0
    id=0
    add=1
    repeat p2,p3
        code=peek(p1,id+p3)
        if ((code>=129)&(code<=159))|((code>=224)&(code<=252)){
            id+add

        }else:if code=0{
            break
        }
        id+add
    loop
    return id
#global
title"5文字ずつ表示"
text="ハンカクとゼンカクの文字数のbyte数を数える"
mes""+text+"¥n"
sdim val
id=0
repeat 5
    len=peekget(text,5,id)    ;指定文字数のバイト数を取得(開始位置はバイトで指定)
    memcpy val,text,len,0,id
    poke val,len
    mes""+val+"¥t"+len
    id+=len
loop

0
    posted by higashijugem 23:54comments(0)|-|


    この記事に対するコメント