中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 18:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]逐行逐字阅读文本的批处理,请高手帮忙完善
楼 主 [已结]逐行逐字阅读文本的批处理,请高手帮忙完善 发表于 2006-11-19 21:44 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
─────────── 版主提示 ───────────
21楼 namejm 所写代码是完美解决方案
─────────── 版主提示 ───────────


我做了一个批处理,让它读取文本文件的内容,逐行逐字显示,但我水平太低,无法使它完全按照原文本的格式显示,请高手帮忙。谢谢!

[ Last edited by bjsh on 2007-8-10 at 08:35 AM ]
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
2 发表于 2006-11-19 22:57 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
自己顶一下!
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
3 发表于 2006-11-19 23:23 ·  中国 北京 朝阳区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
每次读一行,但你并没有显示完一行后让它换新行的代码~:)
所以全连着显示了~:)

也就是说,你读取了一行文本内容后,
然后分解了这个变量,以便再逐字的显示在屏幕上(白底背景很漂亮~:),
但是,你如何知道你取的那一行显示完了?(知道那一行显示完了就可以再打一个换行符了)。

所以,是不是要主动的取完一行以后在这个变量的最后再加一个“标置结束“的符号以方便判断呢?
如果有一个 if 判断是否此行到了结尾,如果是打一个换行符 echo.
这样的方法在下面贴子的第8楼有示例~:)


详见: 无奈何签名代码略析
http://www.cn-dos.net/forum/viewthread.php?tid=18838&fpage=1

上面贴子从读文本内容到显示特殊符号的例子都已经非常全面啦~:)

[ Last edited by redtek on 2006-11-19 at 10:27 AM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
4 发表于 2006-11-19 23:26 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
谢谢!正是看了后,才有此想法,试着玩儿的。主要是没有完全消化吸收啊!

[ Last edited by ccwan on 2006-11-19 at 11:36 PM ]
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
5 发表于 2006-11-20 07:03 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
呵呵~我喜欢先sed -n 1p 读取行再啄字读取
6 发表于 2006-11-20 07:53 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  刚下午写的,因为不支持特殊字符的读取,所以没敢发上来。看见兄弟发这帖子,才发上来,各位高手见笑了。

  把要读的文件拖放到 ReadTxt.BAT 文件上释放即可。

::_______________________ReadTxt.BAT_______________________

@echo off&setlocal ENABLEDELAYEDEXPANSION
FOR /F "DELIMS=" %%A IN ('type %1') DO (CALL;:__;"%%A")
endlocal&PAUSE&goto :EOF

::显示字符子函数————————————-
:__
SET A="%1"
SET B=0
if "%A%"=="" goto end
:BEGIN
IF NOT "!A:~%B%,1!"=="" (
SET/P=!A:~%B%,1!<NUL
PING 127.1 -N 1 >NUL
SET/A B+=1
GOTO BEGIN
) else (
:end
echo/&echo\
)

::_______________________ReadTxt.BAT_______________________

本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ccwan +3 2006-11-25 23:29
7 发表于 2006-11-20 08:07 ·  中国 广西 贵港 电信
高级用户
★★
学无尽止
积分 635
发帖 244
注册 2006-04-15 05:07
UID 53857
性别 男
来自 广西贵港
状态 离线
呵呵,我倒是觉得这个挺有意思的,请问如何修个它的显示速度呢?
8 发表于 2006-11-20 08:09 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
要 echo ,所以特殊字符这个不好处理
9 发表于 2006-11-20 10:06 ·  中国 北京 朝阳区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
顶~~lxmxn兄的动画阅读很精彩,可以看小说啦~:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
10 发表于 2006-11-20 21:01 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
lxmxn兄确实厉害!佩服并感谢。
这正是我想要得效果,多谢兄的代码!
看看能不能解决特殊字符问题。

[ Last edited by ccwan on 2006-11-21 at 12:30 AM ]
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
11 发表于 2006-11-23 07:49
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
UID 69523
性别 男
状态 离线
看小说?真是个好主意,正好哪个高手用批处理也做个电子阅读器吧.
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
12 发表于 2006-11-23 08:46 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
在PSP游戏机上看电子书多爽啊~:)

[ Last edited by redtek on 2006-11-22 at 10:31 PM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
13 发表于 2007-01-12 12:38 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
UID 74129
性别 男
状态 离线
好东西啊

有解决我的一个问题了
谢谢了
14 发表于 2007-01-19 05:08 ·  中国 北京 鹏博士BGP
新手上路
积分 1
发帖 3
注册 2007-01-17 09:26
UID 76788
性别 男
状态 离线
好东西
15 发表于 2007-01-19 05:47 ·  中国 北京 方正宽带
新手上路
积分 14
发帖 7
注册 2007-01-19 05:09
UID 76975
性别 男
状态 离线
不错的东东~
论坛跳转: