EZsoft 板


LINE

我有一些文字档,里面都是中文字 每个档案大约都有100万行 想要把内容全部转成UNICODE的HEX 例如「中」变成「4E2D」 这个转换不困难,但行数高达100万行左右 是否有每个档案能在10秒内完成转换的高效率程式? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 173.213.89.40
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EZsoft/M.1547620949.A.DC5.html
1F:→ spfy: 10s连档案都还没读完吧?01/16 15:19
10s太难的话就改30s吧。希望能尽量快。
2F:→ kobe8112: 转换完放在RAM跟还要存到硬碟内也不一样01/16 15:34
是要存在硬碟
3F:→ kobe8112: 不对啊,你文字档原始的编码格式是啥?01/16 15:45
原始编码为UNICODE
4F:推 enthos: www.di-mgt.com.au/hexdump-for-windows.html01/16 15:56
试用後觉得不合用。减为20万行还是花了以分钟计算的时间 ※ 编辑: shala (173.213.89.40), 01/16/2019 16:58:52
5F:→ kobe8112: 你是要给人看而不是程式要使用的话,01/16 17:09
6F:→ kobe8112: notepad++就有HEX-EDITOR这个外挂模组了,或者使用01/16 17:10
7F:→ kobe8112: UltraEdit这类编辑器01/16 17:11
8F:→ kobe8112: 应该说所有文字编辑器,支援HEX MODE都可以用01/16 17:12
谢谢,不过转换的目的不是要看,而是要给其他程式使用 ※ 编辑: shala (173.213.89.40), 01/16/2019 17:18:47
9F:→ kobe8112: 给其他程式用,不需要转啊,程式只要可以读档案,直接开01/16 17:28
10F:→ kobe8112: 档起来不就是你要的答案了?QQ01/16 17:29
说起来有点复杂,总之是需要转换这一个步骤的。我也希望能省略这一步,但目前还解决 不了QQ ※ 编辑: shala (173.213.89.40), 01/16/2019 18:46:56
11F:推 rick65134: 感觉就是其他程式不是原PO开发的 且只吃HEX01/16 19:12
12F:→ rick65134: 自己写程式最快啦 这麽单一又大量的功能 值得写程式01/16 19:13
我有列入未来计画
13F:→ kobe8112: 还是不太了解,我从文意推测你是用Windows,假设今天你01/16 19:40
14F:→ kobe8112: 开了一个记事本,输入「中」後存档,编码选unicode,01/16 19:41
15F:→ kobe8112: 实际储存的资料就是4Bytes: 0xFF 0xFE 0x2D 0x4E01/16 19:42
16F:→ kobe8112: 那你希望的这个程式,转换完以後档案的raw data是啥呢?01/16 19:42
17F:→ kobe8112: Hex: FF FE 34 00 45 00 32 00 44 00 共10Bytes?01/16 19:45
简单说就是转换後的文字档打开是显示4E2D这个字串。我要把这个字串拿去喂其他程式 ※ 编辑: shala (173.213.89.40), 01/16/2019 20:15:42
18F:→ rick65134: 每行100中文字 一百万行 python3.7+ramdisk 40秒01/16 20:14
谢谢参考数据,硬碟确实是一个关卡QQ ※ 编辑: shala (173.213.89.40), 01/16/2019 20:18:33
19F:→ kobe8112: 所以4E2D存档要用什麽编码?一样Windows上所谓的unicode 01/16 20:32
20F:→ kobe8112: (UCS-2-LE)吗?还是需要再转其他编码?这会影响速度 01/16 20:33
21F:→ kobe8112: 能不能传个范例档来测试测试XD01/16 20:50
转换後的档案我还是用同一种编码,档案略大一点,但就图个方便。 范例档...其实用字典生成就很类似了。我的档案会有一些大五码以外的中文字。
22F:推 rick65134: 你有python3吗?01/16 21:15
23F:→ kobe8112: 扣除BOM,档案大小应该会变4倍01/16 21:32
哈哈,我改用UTF-8试试看好了
24F:→ kobe8112: 所以你要喂的那个程式,确定可以吃多种编码格式? 01/16 23:28
其实不行,所以真的很想换掉那个程式QQ
25F:→ kobe8112: 你的需求,转换後若用UTF-8,撇开Windows会加BOM来看, 01/16 23:28
26F:→ kobe8112: 跟用ASCII编码是一样的大小,也与来源档大小相同 01/16 23:30
27F:→ xvid: 未实测速度 Akelpad + HexSel plugin 01/17 10:41
28F:→ xvid: 刚实测一下有点lag 01/17 10:46
我再找更好的硬体run看看
29F:推 netio: 试下我写的 测试30MB文字档(Unicode)不含读写约1秒左右01/17 20:18
30F:→ netio: http://tinyurl.com/y9c8t6v201/17 20:19
31F:→ netio: 在命令列模式下使用 01/17 20:20
感谢,效率提升很有感!是否因为演算法有所改良? 若「不转换」断行符号会影响效率吗?因为转换後的档案仍需保持行数不变。
32F:→ kobe8112: 你同一个档案编码方式不一致,软体根本无从判断啊01/18 09:07
33F:推 netio: 用查表法应该是最快了 事先会吃1G的记忆体 理论上可支持01/18 11:55
34F:→ netio: 500MB的文字档http://tinyurl.com/ya4gsoxf01/18 11:55
35F:→ netio: 断行符号会影响一点点效率 01/18 11:57
感谢!断行符号不太影响效率的话,可否开发一个保持断行的版本? 另外我发现您的程式会将字串两两对调, 以UTF-8的「一二」为例, 转换前的HEX:E4 B8 80 E4 BA 8C 转换後的字串:B8 E4 E4 80 8C BA 能改为以原顺序输出吗?
36F:→ kobe8112: Mapping table只需要一个型别uint16_t 大小256的阵列吧?01/18 12:52
37F:→ kobe8112: 然後前面讲错,依原PO需求的UCS-2转UTF-8大小变2倍才对 01/18 12:53
38F:推 netio: 是256没错 另增加字元顺序选项http://tinyurl.com/yaaakywe 01/18 16:09
感谢! 能否再增加不转换断行符号的选项?困难的话我自己再加工替换
39F:推 rick65134: 效率提升的问题应该是因为python本身就不是让你拚速度01/18 16:24
40F:→ kobe8112: UTF-8没有BE LE的区别耶... 01/18 17:05
41F:推 netio: 内定就是不转换了 还是你要多个选项?不支持Utf8喔 01/18 17:42
原来如此,我以为也支援UTF8。那没问题了,非常感谢! ※ 编辑: shala (45.56.160.202), 01/18/2019 19:55:44
42F:推 Bencrie: 你是要存成 source code 喔?vim 的 xxd -i 01/20 23:39







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP