中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 读取文本里指定字符 解决了 上一主题 | 下一主题
huzixuan
高级用户




积分 537
发帖 219
注册 2006-10-31
来自 芜湖
状态 离线
『楼 主』:  读取文本里指定字符 解决了

我要读取像是这样
<td class="u"><a href="http://passport.baidu.com/?detail&aid=6&default_tab=1&un=%B0%AE%BA%D5%BA%D5%B5%C4%C5%D6%D7%D3" target=_blank><font color='#000000'>爱赫赫的胖子</font></a></td>
里的用户名
爱赫赫的胖子
0.txt


就是显示 0.txt 里面的全部用户名,最好能剔除重复出现的名字

[ Last edited by huzixuan on 2007-1-29 at 12:32 AM ]

2007-1-28 01:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 2 楼』:  


for /f "tokens=4 delims=><" %%i in (test.txt) do echo %%i


   此帖被 +1 点积分    点击查看详情   
评分人:【 huzixuan 分数: +1  时间:2007-1-29 00:35




三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-28 01:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 3 楼』:  

还以为只是一句话呢!楼主的要求总是变化的啊!



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-28 01:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 4 楼』:  

到底提取什么内容?是只要为“爱赫赫的胖子”就提取还是是用户名就提取还是怎样?



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-28 01:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 5 楼』:  

http://zhenlove.com.cn/cndos/fileup/files/0.txt
好象是要提取这个文件~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-1-28 02:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 6 楼』:  

re redtek
如果如兄所说,那我真的不知楼主的意思了。这个网页的源代码中有五处出现”爱赫赫的胖子“,楼主是要显示五个”爱赫赫的胖子“?还是什么呢?也许兄有办法吧。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-28 02:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huzixuan
高级用户




积分 537
发帖 219
注册 2006-10-31
来自 芜湖
状态 离线
『第 7 楼』:  

恩. 对对
就是显示 0.txt 里面的全部用户名,最好能剔除重复出现的名字

2007-1-28 21:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 8 楼』:  


@echo off

for /f "tokens=3 delims=><" %%i in ('findstr ^"^</FONT^>^</A^>^</TD^>^" 0.htm') do echo %%i

Pause


   此帖被 +6 点积分      点击查看详情   
评分人:【 ccwan 分数: +5  时间:2007-1-29 00:34
评分人:【 huzixuan 分数: +1  时间:2007-1-29 00:36




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-1-29 00:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 9 楼』:  

  看看这个代码是否可行:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('findstr /c:"td class" 0.txt') do (
    set "str=%%i"
    set "str=!str:"=!"
    if "!str:~0,12!"=="<td class=u>" (
        set "str=!str:/=\!"
        set "str=!str:<=\!"
        call :pick-up
    )
)
pause
goto :eof

:pick-up
for /f "delims=" %%i in ("%str%") do set "str=%%~dpi"
if "%str:~-2%"==">\" set "str=%str:~0,-2%"&goto pick-up
set "str=%str:>=\%"
for /f "delims=" %%i in ("%str:~0,-1%") do (
    set str=%%~nxi
    set str=!str: =!
    if not defined !str! echo !str!&set !str!=1
)
goto :eof
  简化一下,速度提升了不少:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('findstr /c:"td class" 0.txt') do (
    set "str=%%i"
    set "str=!str:"=!"
    if "!str:~0,12!"=="<td class=u>" (
        if "!str:~-9,4!"=="</a>" (
            set "str=!str:~0,-16!"
        ) else (
            set "str=!str:~0,-12!"
        )
        set "str=!str:>=\!"
        for /f "delims=" %%j in ("!str!") do (
            set str=%%~nxj
            set str=!str: =!
            if not defined !str! echo !str!&set !str!=1
        )
    )
)
Pause
[ Last edited by namejm on 2007-1-28 at 12:40 PM ]

   此帖被 +7 点积分      点击查看详情   
评分人:【 huzixuan 分数: +2  时间:2007-1-29 00:31
评分人:【 ccwan 分数: +5  时间:2007-1-29 00:36




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-1-29 00:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 10 楼』:  

关于 “,最好能剔除重复出现的名字” 的原理以及相近代码楼主可参考下面非常精彩的帖子~:)



用批处理也可以简单实现删除文本相同行

http://www.cn-dos.net/forum/view ... =if%2Bnot%2Bdefined

   此帖被 +1 点积分    点击查看详情   
评分人:【 huzixuan 分数: +1  时间:2007-1-29 00:32




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-1-29 00:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huzixuan
高级用户




积分 537
发帖 219
注册 2006-10-31
来自 芜湖
状态 离线
『第 11 楼』:  

哇哈哈,namejm斑竹 总是出现在最最危急的关头
并且不管问题是甚模样,任你长的、扁的、方的、圆的,在斑竹手里都能捏成一条细细长长滴     。。直.线。。

2007-1-29 00:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 12 楼』:  

redtek兄的代码非常简洁,但有点瑕疵,就是过滤掉了IP形式的用户名。

namejm兄的代码完整显示了所有用户,也过滤掉了重复用户名,但代码略嫌臃肿。

加分了。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-29 00:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huzixuan
高级用户




积分 537
发帖 219
注册 2006-10-31
来自 芜湖
状态 离线
『第 13 楼』:  

redtek 的代码我运行后就 只提示 按任意键继续...
还有请问怎么一次加 5分的?

2007-1-29 00:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 14 楼』:  

回huzixuan兄,把代码中“0.htm”改为“0.txt”就行啦,我下载那个0.txt的时候另存成了0.htm~:)

兄每发一帖就得到系统4分的加分,超过一定分数给别人加分自然就越来越高~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2007-1-29 00:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 15 楼』:  

呵呵,请看清楚,redtek的代码查看的是0.htm,注意文件名。

至于加分,你的级别升高后就可以了。银牌会员一次最多可以加15分。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-29 00:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: