![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-17 06:55 |
共 47,813 主题排行 / 349,903 发帖 / 今日 0 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » [求助]求统计文本中字数的批处理 |
| 可打印版本 1,026 / 3 |
| 第1楼 foxandmonkey | 发表于 2005-04-20 00:00 |
| 初级用户 发帖 23 积分 129 | |
|
[求助]求统计文本中字数的批处理 英文的文本,每个word计一个数,求总word数,不用第三方程序,不知道有没有办法解决。
我想做个数列递增/减排序bat,解决了这个问题就很容易处理任意长度的序列了 |
|
| 第2楼 Wengier | 发表于 2005-04-20 00:00 |
| 系统支持 发帖 10,521 积分 27,736 | |
|
你是指DOS下還是NT命令行下?如果是DOS下的話不用第三方工具的話基本上是不可能解決的。而如果用第三方的工具的話就非常容易了。
|
|
| 第3楼 foxandmonkey | 发表于 2005-04-20 00:00 |
| 初级用户 发帖 23 积分 129 | |
|
在nt5.x命令行下,用了3方工具的话可移植度就差了,如果用的话完全可以自己用C编译一个。
|
|
| 第4楼 willsort | 发表于 2005-04-22 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re foxandmonkey: 在NT5.x环境下,虽然我没有实际尝试,但我相信不利用第三方工具是可以完成的,最大的可能就是利用for与set或者其它可能的命令和工具。 但我对编写NT下的批处理并不十分热心,原因正是你所提到的“可移植性”,NT下批处理在9x和DOS环境下得不到完整有效的支持。 如果,这个题目放在DOS下,我想最有可能用汇编脚本来实现,简单的思路就是判断单词分界符的个数,但我的汇编基础很低,在此方面帮上你什么了;另一个实现的思路是用命令行循环,将文件的每行作为一条批处理命令的参数,然后统计参数的个数即可,其间可能还需要用到文本行逐行处理的循环(这在我的“文件遍历”批处理中可以找到),但它又可能出现某些小小的错误,比如将带引号的句子认作一个单词,至于如何统计(数列递增/减),你可以参考我编写的《通用进位数值加法器》和《按序列转换的批处理》;当然,可能还存在着第三种思路,那就是将所要用到的第三方工具直接“打包”进批处理中,在运行时再动态解包(简单的方式是DEBUG,复杂一些的是自身携带的专用编码/解码器代码),这样抵消了使用第三方程序对可移植性的影响,但代价是程序文件的体积膨大、运行速度的下降以及天书一样难以阅读的核心算法。 另外,正如Wengier所说,此题用第三方工具是很容易实现的。此类问题,国外的编程者经常使用Gawk(Awk脚本的GPL解释器,有16位DOS版和32位Win版)、sed(一个命令行文本流处理器)以及其它的命令行脚本工具,而非使用纯批处理(pure batch),因为这通常只需要一两行代码,而在纯批处理中可能需要上百行,而可移植性对于此类应用性题目来说,通常是不需要的。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |