中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助]分离出9,10位号码 上一主题 | 下一主题
ka56
中级用户





积分 234
发帖 129
注册 2006-11-28
状态 离线
『楼 主』:  [求助]分离出9,10位号码

我想把新申请到的QQ号码分离出9,10位.

QQ.txt如下:
914421872----zdhfd3e----yegdfgnoxjp_24333@foxmail.com----申请日期: 2009-10-17
914613410----oqcsd4udu----cegwgdvf_00673@foxmail.com----申请日期: 2009-10-17
1295686760----gdsf3wfe----xdyhgzmkvm_24291@foxmail.com----申请日期: 2009-10-17
917517855----kjw45rfh----lxlxdvxk_49606@foxmail.com----申请日期: 2009-10-17
1293888658----u27au6q3----gccidvqw_19724@foxmail.com----申请日期: 2009-10-17
1295776504----bwe0ggfo5----bhsdvdmym_54948@foxmail.com----申请日期: 2009-10-17
1153572352----b3gbgf7e2----rusddspph_54071@foxmail.com----申请日期: 2009-10-17
1295624496----53gfhgez----dhfrtrrqa_13930@foxmail.com----申请日期: 2009-10-17
1400678488----ll6cvchg----rjvfg6yia_81829@foxmail.com----申请日期: 2009-10-17

其中第一组"-----"前面是号码,后面是密码及其他,想得到:

9位的.txt:
914421872----zdhfd3e----yegdfgnoxjp_24333@foxmail.com----申请日期: 2009-10-17
914613410----oqcsd4udu----cegwgdvf_00673@foxmail.com----申请日期: 2009-10-17
917517855----kjw45rfh----lxlxdvxk_49606@foxmail.com----申请日期: 2009-10-17

10位的.txt:
1295686760----gdsf3wfe----xdyhgzmkvm_24291@foxmail.com----申请日期: 2009-10-17
1293888658----u27au6q3----gccidvqw_19724@foxmail.com----申请日期: 2009-10-17
1295776504----bwe0ggfo5----bhsdvdmym_54948@foxmail.com----申请日期: 2009-10-17
1153572352----b3gbgf7e2----rusddspph_54071@foxmail.com----申请日期: 2009-10-17
1295624496----53gfhgez----dhfrtrrqa_13930@foxmail.com----申请日期: 2009-10-17
1400678488----ll6cvchg----rjvfg6yia_81829@foxmail.com----申请日期: 2009-10-17


希望能找到速度快的,谢谢!!

2010-3-29 20:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

sort QQ.txt


然后循环判断第10位是不是-
是的话,后面的都是9位

不然就直接判断是不是第10位为-,是是9位的,不是就是10位的



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2010-3-29 21:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ka56
中级用户





积分 234
发帖 129
注册 2006-11-28
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by slore at 2010-3-29 21:20:
sort QQ.txt


然后循环判断第10位是不是-
是的话,后面的都是9位

不然就直接判断是不是第10位为-,是是9位的,不是就是10位的

谢slore大大指导!!
我基本属菜鸟级,平时只忙搞QQ,需要时才想起这里,想想惭愧啊... - -!
排序后会快些?判断语句我不会写,能给段完整的代码?
谢谢!!
先分离出一种,余下的用findstr /V反向我会.

2010-3-29 21:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ka56
中级用户





积分 234
发帖 129
注册 2006-11-28
状态 离线
『第 4 楼』:  

@echo off
for /f "tokens=1 delims=----" %%a in (QQ.txt) do if %%a LSS 1000000000 echo %%a>>9位的.txt
余下的findstr /V反向,或;
for /f "tokens=1 delims=----" %%a in (QQ.txt) do if %%a GTR 1000000000 echo %%a>>10位的.txt

有效率更高的,请诸大大务指导下,谢谢!!

[ Last edited by ka56 on 2010-3-29 at 22:14 ]

2010-3-29 22:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (QQ.txt) do (
set line=%%a
if "!line:~9,1!"=="-" (echo %%a>>9位的.txt) else (echo %%a>>10位的.txt)
)



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2010-3-29 23:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ka56
中级用户





积分 234
发帖 129
注册 2006-11-28
状态 离线
『第 6 楼』:  

谢谢分享又一种思路!真好,您真伟大!!

2010-3-29 23:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: