找回密码
 加入
搜索
查看: 4860|回复: 10

请教AUTOIT里怎么计算字符串的字节数, 注意不是字符数 ???

[复制链接]
发表于 2008-5-15 17:39:02 | 显示全部楼层 |阅读模式
stringlen计算的是字符数, 还有其他办法计算字节数么???
譬如"你n" 字符数为2  但字节数为3....
发表于 2008-5-15 17:54:24 | 显示全部楼层
我比较不才……一个比较烂的主意是:把他们写入到一个临时文本文件,然后FGS返回文本大小,这样就判断出字节数了……
 楼主| 发表于 2008-5-15 18:07:35 | 显示全部楼层
呵呵,如果只计算字符串字节数倒是可行的..

只是有些操作就不太方便了...

譬如我要把一个长字符串截成N行, 每行的宽度最多相差1个字节,  这就不好办了,  而且文件读取的函数只能控制字符数, 而不是字节数
发表于 2008-5-15 18:38:35 | 显示全部楼层
这真是个叫人苦恼的要求= =|||
发表于 2008-5-15 19:16:38 | 显示全部楼层
FileGetSize

以字节为单位返回指定文件的大小。
 楼主| 发表于 2008-5-15 19:18:30 | 显示全部楼层
楼上的方法二楼已说过了
发表于 2008-5-15 21:48:09 | 显示全部楼层
$var = "AutoIt 中文论坛"

MsgBox(64, "文本长度", "是:" & ChrLenFixed($var))

Func ChrLenFixed($c)
        Dim $ChrL = 0, $AscNum
        For $i = 1 To StringLen($c)
                $AscNum = AscW(StringMid($c, $i, 1))
                If $AscNum < 0 Then $AscNum = $AscNum + 65536
                If $AscNum > 255 Then
                        $ChrL = $ChrL + 2
                Else
                        $ChrL = $ChrL + 1
                EndIf
        Next
        Return $ChrL
EndFunc
 楼主| 发表于 2008-5-15 22:22:06 | 显示全部楼层
这方法在做网站时用过, 原理是一致的..

谢谢老毛桃了, 此老毛桃是做PE的那位大大么?? 呵呵
发表于 2008-5-15 22:26:38 | 显示全部楼层
原帖由 llztt 于 2008-5-15 22:22 发表
这方法在做网站时用过, 原理是一致的..

谢谢老毛桃了, 此老毛桃是做PE的那位大大么?? 呵呵




我以前做 ASP 程序时就写过类似的函数以控制页面文字的等宽。


PS:是的。
发表于 2008-5-15 22:44:54 | 显示全部楼层
老毛桃都来了,看来高手不少。
 楼主| 发表于 2008-5-16 01:36:27 | 显示全部楼层
哈哈, 竟然真是传说中的老毛桃,失敬失敬啊

借助老毛桃代码,  修改了破帽遮颜的公告板, 倒是可以根据公告内容多少来自动决定是否加滚动条了, 但是代码看着臃肿, 而且很多判断不精确... 最后决定放弃..

最后决定修改成这样, 把所有公告选项样式和内容都放到一个配置文件里, 公告内容用
[公告内容]
滚动条=是/否
LIN1=这是第一段
LIN2=这是第二段
....
表示之....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-26 19:02 , Processed in 0.079021 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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