|
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 |
|
|