找回密码
 加入
搜索
查看: 2164|回复: 3

[AU3基础] M大的读取中文第一个首字母,自定义函数什么意思啊?

[复制链接]
发表于 2013-11-11 09:04:16 | 显示全部楼层 |阅读模式
Global Const $key[27]=['吖','八','擦','耷','俄','发','噶','哈','丌','丌','卡','拉','马','拿','哦','趴','七','然','撒','他','挖','挖','挖','西','丫','匝','匝']
Global $str='测试中文拼音首字母',$L
For $i = 1 To StringLen($str)
        Switch Dec(StringTrimLeft(StringToBinary(StringMid($str,$i,1)),2));把输入的文字转换为ANSI 编码,在把ANSI 编码转换成十进制
                Case 32 To 127;;;输入的是英文字母或数字就显示这个?
                        $L&=StringMid($str,$i,1)
                Case 33095 To 62289;;;输入的是汉字就运行这个?
                        $L&=Chr(97+_C(StringMid($str,$i,1),0,26))
        EndSwitch
Next
MsgBox(0,'',$L)
Func _C($s,$f,$e)                                ;改进的中值法
                Local $mid=Int(($e-$f)/2)+$f
                If $mid=$f Then Return $f
            If StringCompare($s,$key[$mid])=0 Then
                    Return $mid
            ElseIf StringCompare($s,$key[$mid])>0 Then
                Return _C($s,$mid,$e)
            ElseIf StringCompare($s,$key[$mid])<0 Then
                Return _C($s,$f,$mid)
                EndIf
EndFunc
上面的自定义函数 _c()  他调用的数组key[]到底是怎么工作的?key[]里面的东西代表什么啊?
发表于 2013-11-11 13:12:55 | 显示全部楼层
可以搜索下 信息交换用汉字编码字符集
 楼主| 发表于 2013-11-12 09:50:55 | 显示全部楼层
回复 2# snailyyy
还是不能理解
发表于 2013-11-12 12:16:33 | 显示全部楼层
回复 3# iori2882


    个人理解 具体原理还是M大来解释 我自己去查了下 大概是以下原理
信息交换用汉字编码字符集 里面包含了几千个中国字的ANSI编码 字是按照一定顺序排列的
先获取我们输入的字的ANSI编码 然后和信息交换用汉字编码字符集中的字比对
比如  $str='测试中文拼音首字母'  中的测 测的ANSI编码在 '擦' 之后  在 '耷'之前 所以这个字的首字母则为 '擦' 的首字母 C
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 12:41 , Processed in 0.075368 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表