中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-17 22:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何分离汉字行和非汉字行 查看 8,143 回复 51
31 发表于 2007-05-14 10:43 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 302
发帖 138
注册 2007-03-29 02:33
UID 83224
性别 男
状态 离线
sed我下了3.59和4.07好象都不能用 我的操作系统是xp sp2
32 发表于 2007-05-14 12:17 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by abczxc at 2007-5-13 19:05:
谢谢楼上的同志啊
If Abs(Asc(whichChar))>127 Then
Response.write whichChar & "是一个汉字"
Else
Response.write whichChar & "不是一个汉字"

要注意了,字符的ASCII大于127的不一定就是汉字。
33 发表于 2007-05-14 12:18 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by lililulula at 2007-5-14 10:43:
sed我下了3.59和4.07好象都不能用 我的操作系统是xp sp2

不能用?报什么错误?

sed --help
sed --version
看看提示信息是什么?
34 发表于 2007-05-14 12:39 ·  中国 广东 广州 番禺区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
UID 82819
性别 男
状态 离线
@echo off & setlocal enabledelayedexpansion
set "flag=false"
for /f "tokens=* " %%i in (1.txt) do (
if "!flag!"=="true" (
echo %%i>>2.txt
set "flag=false"
)
set "x=%%i"
set "x=!x:~0,1!"
if !x! GTR Z (
echo %%i>>2.txt
set "flag=true"
)
)
针对楼主的那几个句子是没有问题的了。

要不然。。若第一行是空格?或其他的怎么办? 批处理会出问题 的。
知,不觉多。不知,乃求知
35 若为了安全:)则 发表于 2007-05-14 12:44 ·  中国 广东 广州 番禺区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
UID 82819
性别 男
状态 离线
判断字符大于 z后,

继续判断,因为双字节的标点也算在英文字符内的。

所以可以通过以前lxmxn 教给我们的一个方法:)

读取第一个数字后,首先用批处理判断是不是空格。。

若不为空格,则通过:
echo %x%>3.txt 然后读取 3.txt 的文件大小是一个字节还是两个字节来判断是不是汉字。
呵呵,如此,批处理的也可以完成了。
知,不觉多。不知,乃求知
36 发表于 2007-05-14 15:59 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 302
发帖 138
注册 2007-03-29 02:33
UID 83224
性别 男
状态 离线
回lxmn斑竹:
我点sed.exe,窗口直接跳走,更本进不去.你提供的sed也一样~~
37 发表于 2007-06-15 11:44 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
UID 63170
来自 广东深圳
状态 离线


回lxmn斑竹:
我点sed.exe,窗口直接跳走,更本进不去.你提供的sed也一样~~


sed.exe 是直接双击可以用的吗..我今天才知道有这一方法...
38 发表于 2007-06-15 12:00 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by lililulula at 2007-5-14 15:59:
回lxmn斑竹:
我点sed.exe,窗口直接跳走,更本进不去.你提供的sed也一样~~

sed 是个命令行工具,要在命令行或者批处理里面运行的。
39 发表于 2007-06-15 12:34 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
哈哈 又学到一招 ^_^

所以可以通过以前lxmxn 教给我们的一个方法:)
读取第一个数字后,首先用批处理判断是不是空格。。
若不为空格,则通过:
echo %x%>3.txt 然后读取 3.txt 的文件大小是一个字节还是两个字节来判断是不是汉字。
40 发表于 2007-09-14 22:46 ·  中国 江苏 徐州 电信
新手上路
积分 8
发帖 3
注册 2007-09-13 06:36
UID 97238
性别 男
状态 离线
谢谢各位同志啊
41 发表于 2007-11-25 18:13 ·  中国 新疆 乌鲁木齐 电信
新手上路
积分 2
发帖 1
注册 2007-11-25 17:49
UID 103737
性别 男
状态 离线
谢谢楼上的同志,很需要!!!
42 发表于 2008-04-08 15:29 ·  中国 陕西 西安 电信
新手上路
积分 2
发帖 1
注册 2008-04-08 14:47
UID 115247
性别 男
状态 离线
哈哈 新的号,来支持下
43 发表于 2008-04-16 11:11 ·  中国 江西 南昌 电信
初级用户
积分 34
发帖 16
注册 2006-10-14 00:05
UID 65659
性别 男
状态 离线
这个好用啊
44 发表于 2008-04-16 11:56 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
既然是纯英文行,纯中文行
有那么复杂吗?要findstr CHIS呢?
------------------------------------------
中英混合行的认定中文多的为中文行,少的为英文行,(汉字用字符个数,英文用单词数判定)
大家弄下...................注意效率,那可是长篇小说,十几万行呢

[ Last edited by plp626 on 2008-4-16 at 11:57 AM ]
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
45 发表于 2008-09-27 02:52 ·  中国 上海 宝山区 电信
新手上路
积分 2
发帖 1
注册 2008-09-27 02:25
UID 126756
性别 男
状态 离线
Thanks for your sharing!!
BR
论坛跳转: