中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 统计文档中,逗号出现的次数 上一主题 | 下一主题
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『楼 主』:  统计文档中,逗号出现的次数

看到  namejm 荣誉版主  曾经发的一个老帖,觉得挺有意识,原帖中又没有满意的答案
所以重发出来讨论一下,看有没有更好的方法.
a.txt内容
1  ,2, 3,4,
7,8, 9  9,w  ww,qer, ,,

要求:
统计a.txt中,逗号出现的次数.

原帖
http://www.cn-dos.net/forum/view ... highlight=%2Bnamejm

[ Last edited by 26933062 on 2007-8-7 at 02:49 AM ]

2007-8-6 23:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 2 楼』:  

无人问津!
难道是题目太简单了,都不愿回答?
那就增加点难度,
1:a.txt内容如下,
2:-----------------------------,
3:(注意:有个空行是由空格组成),
4:!" ",!
        
6::`-=\] [';/.,

8:;<,>
9::!!,!
10:"" ",
11:","
12:"a",
13:"b" c",
14:%,%
15:!,!
16:!"!,
17:~!@# $ %^& *()_+|}{":?><12,
18:-----------------------------,
19:要求:,
20:原样显示a.txt的内容.并查找a.txt中有几个逗号,
;<>><|"*===============================================================,

[ Last edited by 26933062 on 2007-8-7 at 02:40 PM ]

2007-8-7 02:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 3 楼』:  

vbs的
msgbox ubound(split(createobject("scripting.filesystemobject").opentextfile("a.txt").readall,","))


2007-8-7 11:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 4 楼』:  

集各家所长.
@echo off
for /f "delims=" %%i in ('findstr /n .* a.txt') do (
set "var=%%i"
call :ss
)
echo.&echo  共有 %a% 个逗号.
echo.&pause&exit
:ss
set "num=%var:"=%"
set "num=%num:*:=%"
:lis
echo "%num%"|findstr ",">nul&&(
set/a a+=1
set "num=%num:*,=%"
goto lis
)
setlocal ENABLEDELAYEDEXPANSION
set var=!var:*:=!
echo.!var!
endlocal
goto :eof
不用延迟好像也可以
@echo off
for /f "tokens=1* delims=:" %%i in ('findstr /n .* a.txt') do (
echo.%%j
set "var=%%i%%j"
call :ss
)
echo.&echo  共有 %a% 个逗号.
echo.&pause&exit
:ss
set "num=%var:"=%"
set "num=%num:*:=%"
:lis
echo "%num%"|findstr ",">nul&&(
set/a a+=1
set "num=%num:*,=%"
goto lis
)
goto :eof
[ Last edited by 26933062 on 2007-8-7 at 03:04 PM ]

2007-8-7 14:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tyh
初级用户





积分 80
发帖 43
注册 2007-4-21
状态 离线
『第 5 楼』:  

呵呵。不用显示的话:
@echo %on% off
set n=0
for /f "delims=" %%a in (a.txt) do (
        set "str=%%a"
        call set "str=%%str:"=%%"
        call :ct
)
echo 共有%n%个逗号。
pause&&goto :eof
:ct
set m=0
:ct2
call set "onestr=%%str:~%m%,1%%"
set /a m+=1
if "%onestr%"=="," set /a n+=1
if "%onestr%"=="" goto :eof
goto :ct2
楼上知道我是谁了吧~~ 呵呵

2007-8-7 17:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: