中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 区别每行汉字开头还是非汉字开头。并自动整理
作者:
标题: 区别每行汉字开头还是非汉字开头。并自动整理 上一主题 | 下一主题
405285977
初级用户





积分 20
发帖 19
注册 2009-4-20
状态 离线
『楼 主』:  区别每行汉字开头还是非汉字开头。并自动整理

区别每行汉字开头还是非汉字开头。并自动整理

我有一些文本1.txt。内容如下:
干眼症患者的渗透压是:
1.干眼症患者
的渗透压是
A.大于305m Osm/L
B.等于300m Osm/L
C.小于300m Osm/L
D.等于312m Osm/L
E.大于312m Osm/L
2.角巩膜缘的
宽度
约为
A.0.9mm
B.1mm
C.0.5mm
D.1.2mm
E.O.75mm
3.口服乙酰唑胺可
出现
我希望题目都是一行。这样方便我整理。希望批处理的功能整理为
1.干眼症患者的渗透压是
A.大于305m Osm/L
B.等于300m Osm/L
C.小于300m Osm/L
D.等于312m Osm/L
E.大于312m Osm/L
2.角巩膜缘的宽度约为
A.0.9mm
B.1mm
C.0.5mm
D.1.2mm
E.O.75mm
3.口服乙酰唑胺可出现
思路是每行第一个字母只能是数字或字母。如果是汉字。则自动cut这一段汉字到上一行。

谢谢大大们解答。

2009-4-21 03:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 2 楼』:  

干眼症患者的渗透压是:
1.干眼症患者
的渗透压是

这个是不是弄错,多打了一行




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-4-21 04:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
405285977
初级用户





积分 20
发帖 19
注册 2009-4-20
状态 离线
『第 3 楼』:  

恩。

原始文本应该是

1.干眼症患者
的渗透压是
A.大于305m Osm/L
B.等于300m Osm/L
C.小于300m Osm/L
D.等于312m Osm/L
E.大于312m Osm/L
2.角巩膜缘的
宽度
约为
A.0.9mm
B.1mm
C.0.5mm
D.1.2mm
E.O.75mm
3.口服乙酰唑胺可
出现


就是首字只能是数字或字母。。。

2009-4-21 04:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:  

思路如果回车换行之后的字符不是字母或者数字,就把回车换行丢掉

@echo off
copy a.txt 1.txt /y
fr 1.txt -rnnlic:"(\r\n)([^a-z0-9])" -t:"\2"
start 1.txt
pause

FR 下载: http://baiy.cn/utils/fr/index.htm

   此帖被 +3 点积分      点击查看详情   
评分人:【 netbenton 分数: +3  时间:2009-4-22 11:04





有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-4-21 04:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
405285977
初级用户





积分 20
发帖 19
注册 2009-4-20
状态 离线
『第 5 楼』:  

谢谢啦。可以了。呵呵。专业学的不一样。思路也差这么远。还是学计算机的牛。。。

2009-4-21 04:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 6 楼』:  

sed ":a;$!N;s/\n\([\x80-\xFF]\)/\1/;ta;P;D" aa.txt

   此帖被 +3 点积分     点击查看详情   
评分人:【 yishanju 分数: +3  时间:2009-4-22 09:03


2009-4-21 05:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 7 楼』:  

@echo off&setlocal enabledelayedexpansion
set add=
for /f "delims=" %%a in (1.txt) do (set "str=%%a"&call :sub)
echo !add!
pause
goto :eof

:sub
set one=!str:~,1!
if !one! gtr zz (set "add=!add!!str!") else (echo.!add!&set add=!str!)

   此帖被 +3 点积分     点击查看详情   
评分人:【 yishanju 分数: +3  时间:2009-4-22 09:03




精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-4-21 14:00
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
jmz573515
银牌会员




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


set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("1.txt")
s=file.readall
file.close
do until instr(s,vbcrlf)=0
        i=instr(s,vbcrlf)
        if instr("123456789ABCDEFGHIZKLMNOPQRSTUVWXYZabcdefghizklmnopqrstuvwxyz",mid(s,i+2,1))<>0 then
                sm=sm&left(s,i)  & vbcrlf
        else
                sm=sm & left(s,i-1)
        end if
        s=mid(s,i+2)
loop
wscript.echo sm


2009-4-21 21:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 9 楼』:  


fso=WScript.createobject("scripting.filesystemobject");
sss=fso.opentextfile("1.txt").readall();
re=/\r\n(?=[\u4E00-\u9FA5])/g
sss=sss.replace(re,"");
fso.createtextfile("1_dest.txt",1,0).write(sss)
[ Last edited by freeants001 on 2009-4-22 at 00:32 ]

2009-4-22 00:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
405285977
初级用户





积分 20
发帖 19
注册 2009-4-20
状态 离线
『第 10 楼』:  

谢谢大家了。。。

2009-4-22 05:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 11 楼』:  

这个帖子值得收藏了




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-4-22 09:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: