hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
文字インデックス変換 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

文字インデックス ⇔ バイト 相互変換

メッセージボックスの選択範囲指定などで使えるかと。

ソース

filetoandto.hsp
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 
 
 
 
 
 
 
 
 
 
-
|
-
|
!
|
!
 
 
 
 
 
 
 
 
 
 
-
|
-
|
!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#module
//指定した変数のバイト位置を文字インデックスに変換
//p1: 文字インデックス値を取得する文字列型変数
//p2: 変換したいバイト位置
#defcfunc ByteToStrIndex var p1, int p2
sdim s1,p2
memcpy s1,p1,p2,0,0        //指定した位置までの文字数を取得
s2=0
s4=-2
repeat p2
    if s4!cnt-1{
        s3=peek(s1,cnt)
        if ((s3>=$81)&(s3<=$9f) )|( (s3>=$e0)&(s3<=$fc))=1{
            s4=cnt
        }
        s2+
    }
loop
return s2
 
//指定した変数の文字インデックスをバイト位置に変換
//p1: 文字インデックス値を取得する文字列型変数
//p2: 変換したい文字インデックス値
#defcfunc StrIndexToByte var p1, int p2
s2=0                    //byteカウント
repeat p2
    s1=peek(p1,s2)
    if ((s1>=$81)&(s1<=$9f))|((s1>=$e0)&(s1<=$fc)){
        s2+2
    }else{
        s2+
    }
loop
 
 
return s2
 
#global
 
 
 
aa="HSPでWindowsの世界が広がります。"
bb=ByteToStrIndex(aa,strlen(aa))
cc=StrIndexToByte(aa,bb)
mes "もともとの文字\t\t"+aa
mes "Byte値\t\t\t"+strlen(aa)+"byte"
mes "変換された文字数\t"+bb+"文字"
mes "変換されたByte値\t"+cc+"byte"
 
 
 
stop

コメント


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

添付ファイル:
filetoandto.hsp
399件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2007-04-08 (日) 02:48:32 (2436d)