中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 20:31
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]如何从QQ2009的Info.db中将号码提取出来(已解决)
可打印版本  7,015 / 30
第1楼 Hanyeguxing 发表于 2009-03-02 10:29
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
[求助]如何从QQ2009的Info.db中将号码提取出来(已解决)
上传的QQ2009信息info.db文件 http://upload.cn-dos.net/img/1348.rar

例如有如下的乱码:

涳艛?忌:J垟麳]CF K-婣硵艛?忌:鉁s?殸⑽矎?
NF 
 515187266 9TD  傢ろ
04  435853964 -TD 傘18娿
?
 5? o欙L(   } ~搁搁块€8362-406
務蠚崄u39E拞r 515187266 >TD 
ffffTA ?{-%/%//>PWf@=Oφ≌οη∠┫


要求:分行显示数字串。
1,由于QQ号码与乱码中的数字可能因为直接过滤其他字符而导致过滤后QQ号码与乱码中的数字连在一起而无法分辨,所以 个人认为应该使用替换。
2,因为乱码存在类似8362-406的数字串,所以在过滤时不能过滤掉-
3,由于该乱码中存在数字,所以少于5位的连续数字串要求被删除。
4,因为乱码存在类似8362-406的数字串,这些不是QQ号码,删除中间含有-的数字串。
5,删除重复的数字串

提取QQ号码后的示例效果如下:

435853964
515187266




Originally posted by HAT at 2009-3-4 05:37:
第2楼 yishanju 发表于 2009-03-02 19:49
银牌会员 发帖 1,357 积分 1,488
真4想要玩死人不是

用FR 工具替换就一句命令

fr -ric:"" -t:"A" 1.txt

得到像下面的结果


[ Last edited by yishanju on 2009-3-2 at 19:52 ]
第3楼 yishanju 发表于 2009-03-02 19:53
银牌会员 发帖 1,357 积分 1,488
改一下,空格,不替换成A

fr -ric:"" -t:"A" 1.txt

结果如下:



[ Last edited by yishanju on 2009-3-2 at 20:40 ]
第4楼 HAT 发表于 2009-03-02 23:10
版主 发帖 5,017 积分 9,023
第5楼 yishanju 发表于 2009-03-03 06:21
银牌会员 发帖 1,357 积分 1,488
-_- 以前我也想用SED,不过后来发现处理过的文档的回车换行全变成黑方块,
恶心坏了
就没再用过SED
第6楼 HAT 发表于 2009-03-03 06:43
版主 发帖 5,017 积分 9,023
Re 5楼
那是因为你没有找到合适的版本^_^
第7楼 yishanju 发表于 2009-03-03 06:45
银牌会员 发帖 1,357 积分 1,488
给传个呗
我在GUNWIN32 上下的sed 4.15
第8楼 HAT 发表于 2009-03-03 08:01
版主 发帖 5,017 积分 9,023
Re 7楼
第9楼 Hanyeguxing 发表于 2009-03-03 12:42
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
谢谢各位大大高人,俺只是想用一个批处理来完成,不借助其他工具可以吗?
这是给别人弄的。俺总不能给别人发段批处理脚本,然后再传给别人个文件吧。。。
鄙视一下自己,呵呵。
操作系统:XP SP2 或 SP3

[ Last edited by Hanyeguxing on 2009-3-3 at 12:46 ]
第10楼 yishanju 发表于 2009-03-03 13:18
银牌会员 发帖 1,357 积分 1,488
打个包一起传过很难么?
第11楼 netbenton 发表于 2009-03-03 13:36
银牌会员 发帖 752 积分 1,916 来自 广西
::处理60K以内的文件,大了搞不定,汇编语言部分由批处理com开发工具辅助写的。
::在%1指定要修改的文件
@echo off
goto :begin
a 80
push bx
push cx
mov si,100
mov di,si
lodsb
cmp al,30
jb 0090
cmp al,39
jb 0092
mov al,41
stosb
loop 0087
pop cx
pop bx
nop

t=80
g 97

w
q
q
:begin
debug %1<%~nx0

[ Last edited by netbenton on 2009-3-3 at 11:37 ]
第12楼 netbenton 发表于 2009-03-03 14:01
银牌会员 发帖 752 积分 1,916 来自 广西
这样也可以
@echo off
goto :bengin
a 80
db, 53 51 BE 00 01 89 F7 AC 3C 30 72 04 3C 39 72 02 B0 41 AA E2
db, F2 59 5B 90


t=80
g 97

w
q
q
:bengin
debug %1<%~nx0
第13楼 Hanyeguxing 发表于 2009-03-03 14:16
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
Originally posted by netbenton at 2009-3-3 13:36:
::处理60K以内的文件,大了搞不定,汇编语言部分由批处理com开发工具辅助写的。
::在%1指定要修改的文件
@echo off
goto :begin
a 80
push bx
push cx
mov si,10 ...

这个要处理的文件至少170kb,350kb都很常见。

Originally posted by yishanju at 2009-3-3 13:18:
打个包一起传过很难么?


大大,给个fr工具的下载地址哈,俺就用他了,谢谢
第14楼 yishanju 发表于 2009-03-03 14:23
银牌会员 发帖 1,357 积分 1,488
第15楼 Hanyeguxing 发表于 2009-03-03 14:41
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
Originally posted by yishanju at 2009-3-3 14:23:
fr下载地址:
http://baiy.cn/utils/fr/index.htm

现在开始学习fr和sed,呵呵

使用fr,依然残留少量的小黑块5555555555555555
楼上的大大,用QQ2009版里的info.db测试就知道了

[ Last edited by Hanyeguxing on 2009-3-3 at 14:59 ]
1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023