TC官方合作论坛

 找回密码
 立即注册
查看: 1399|回复: 47
打印 上一主题 下一主题

[TC5.0源码] 字符串打散--支持中文字符串打散--纯TC源码

  [复制链接]
跳转到指定楼层
楼主
发表于 2015-12-25 17:23:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 somyyy 于 2015-12-27 00:27 编辑

昨天无聊浏览着网页,突然想一串字符串,没有分隔符的话,怎么把它打散成一个个字符呢?
于是就打开TC,一看,原来利用字符串返回字符就行了,但是又想内存读字节重新组装应该也可以吧?
所以,写来一个源码给大家分享一下,高手掠过,需要的朋友请不吝支持一下。
非中文内存码过滤了第一字节的00

非中文内存码未过滤第一字节的00

游客,如果您要查看本帖隐藏内容请回复
游客,如果您要查看本帖隐藏内容请回复





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

沙发
发表于 2015-12-25 19:46:52 | 只看该作者
看看
回复

使用道具 举报

板凳
发表于 2015-12-25 20:20:24 | 只看该作者
了解一下
回复

使用道具 举报

地板
发表于 2015-12-26 08:51:09 | 只看该作者
早上好 爱卿们

早上好 爱卿们

早上好 爱卿们

回复 支持 反对

使用道具 举报

5#
发表于 2015-12-26 09:12:33 | 只看该作者
好奇看看
回复

使用道具 举报

6#
发表于 2015-12-26 18:44:21 | 只看该作者
x1111111
回复

使用道具 举报

7#
发表于 2015-12-26 20:23:06 | 只看该作者
内存非中文部份要补零,否则是不正确的
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2015-12-26 21:18:28 | 只看该作者
本帖最后由 somyyy 于 2015-12-26 21:24 编辑
sam7894604 发表于 2015-12-26 20:23
内存非中文部份要补零,否则是不正确的

内存中非中文部分实际数据存储是要前面加00的,由于前面是00,所以逻辑判断时候过滤了,需要补加,就在源码过滤00段补上即可,只是看着不舒服给过滤掉了;
对中文部分由于TC默认省略00,会导致数据组装时出错,重点进行了处理。
回复 支持 反对

使用道具 举报

9#
发表于 2015-12-26 21:31:30 | 只看该作者
本帖最后由 sam7894604 于 2015-12-26 21:34 编辑
somyyy 发表于 2015-12-26 21:18
内存中非中文部分实际数据存储是要前面加00的,由于前面是00,所以逻辑判断时候过滤了,需要补加,就在源 ...

你理解错了,因为字符串编码为 Unicode 一个字符就是双字节大小,所以我才说你非中文部份处理错误。
另外其实用 字符串返回字符 跟你写的读内存方式一样可以完成相同功能
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2015-12-26 22:47:06 | 只看该作者
sam7894604 发表于 2015-12-26 21:31
你理解错了,因为字符串编码为 Unicode 一个字符就是双字节大小,所以我才说你非中文部份处理错误。
另外 ...

是的,TC默认U码,应该加00,这个鬼哥是对的,我也是看着不爽过滤了;
源码有字符串返回字符这个程序段,对应函数打散编辑框显示的;
内存组装就是后面对内存地址读取后组装处理后显示的;
内存数据和十进制数都是内存组装的一个数值显示,也就在内存数据这里过滤了非中文字符前面一个字节的00。
还是感谢鬼哥,说明一下情况,这样更便于大家更好的理解程序和了解内存数据。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-18 01:18 , Processed in 0.435882 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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