中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 00:14
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » N多文件进行批量的固定长度回车并删掉空格的问题
可打印版本  2,453 / 25
第16楼 terse 发表于 2008-06-01 22:43
银牌会员 发帖 946 积分 2,404
Originally posted by slore at 2008-6-1 22:15:
?貌似没有除了的样子呀=。=

我在本地测试是好的发上来就这样的格式
第17楼 26933062 发表于 2008-06-01 22:48
银牌会员 发帖 879 积分 2,268
看楼主的意思好像是 以60个字节来分割行,这个问题用批来作,即使作出来效率都是不敢恭维的。
况且 用 判断是否大于 Z 的方法,好像也无法对所有字符进行准确判断。
第18楼 terse 发表于 2008-06-01 23:08
银牌会员 发帖 946 积分 2,404
Originally posted by 26933062 at 2008-6-1 22:48:
看楼主的意思好像是 以60个字节来分割行,这个问题用批来作,即使作出来效率都是不敢恭维的。
况且 用 判断是否大于 Z 的方法,好像也无法对所有字符进行准确判断。

确实是的 我开始写了一个逐字处理的 但效率不怎么样 因为看楼主的范本就是两行相隔的 故。。。

[ Last edited by terse on 2008-6-1 at 11:10 PM ]
第19楼 slore 发表于 2008-06-01 23:15
铂金会员 发帖 2,478 积分 5,212
VBS的话……
第20楼 zhengruijian 发表于 2008-06-02 06:10
初级用户 发帖 24 积分 54
Originally posted by moniuming at 2008-6-1 22:28:
弄得我头都大了(借用5楼的判断方法:):P:)),这次应该没问题了,汗.........
第21楼 zhengruijian 发表于 2008-06-02 06:17
初级用户 发帖 24 积分 54
Originally posted by terse at 2008-6-1 23:08:

确实是的 我开始写了一个逐字处理的 但效率不怎么样 因为看楼主的范本就是两行相隔的 故。。。

[ Last edited by terse on 2008-6-1 at 11:10 PM ]


您说得对,MS对这样"【"的字符处理不了.

标准的30个汉字的长度不就是60个字节吧.,不难理解啊.就是无论英文还是中文,都是60个字节回车.
我的文章不多,就60多篇,总共6M左右.不算大.
第22楼 moniuming 发表于 2008-06-02 09:43
银牌会员 发帖 574 积分 1,335 来自 广西
我用14楼的这段代码处理了一下之后,有的文章变成这样的了.个别的句子没有处理.可能是程序不够完善吧.

14楼的代码是以每行的第一个字符来进行判断的,只能处理纯英文或纯中文的行,如果要按60个字节来处理的话,只能求助于VBS高手了,slore该出手了吧
第23楼 slore 发表于 2008-06-02 14:01
铂金会员 发帖 2,478 积分 5,212
Const ForReading = 1
Const ForWriting = 2

FileName = "test.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(FileName, ForReading)

Do Until objFile.AtEndOfStream
StrLine = objFile.ReadLine
If Len
(StrLine) Then '如果不是空行
If Len(Replace(StrLine," ","")) Then '如果不是纯空格行
OutLine = CutStrB(StrLine,60)
OutStr = OutStr & OutLine & vbCrLf
End If
End If
Loop



Set
objFile = objFSO.OpenTextFile(FileName, ForWriting,True)
objFile.Write Replace(OutStr,vbCrLf & vbCrLf,vbCrLf)
objFile.Close

Function
CutStrB(StrExp,BinLen)
Dim i,C,AC
For i = 1 To Len(StrExp)
C = Mid(StrExp, i, 1):AC = Asc(C)
If Not (AC >= 0 And AC < 128) Then MixLen = MixLen + 1
MixLen = MixLen + 1
CutStrB = CutStrB & C
If MixLen >= BinLen Then MixLen = 0:CutStrB = CutStrB & vbCrLf
Next
End Function
第24楼 zhengruijian 发表于 2008-06-03 02:02
初级用户 发帖 24 积分 54
Originally posted by slore at 2008-6-2 14:01:
Const ForReading = 1
Const ForWriting = 2

FileName = "test ...


这段程序怎么用的,我把它保存成.bat或者.cmd之后运行都不行呢,一闪而过,再查看文件夹里的文件,一个都没变.
我是把它保存在文件所在文件夹里运行的.不知道对不对?
第25楼 bat-zw 发表于 2008-06-03 08:08
金牌会员 发帖 1,276 积分 3,105
晕,要保存成vbs。
ps:无语。。。
第26楼 zhengruijian 发表于 2008-06-03 15:42
初级用户 发帖 24 积分 54
Originally posted by zw19750516 at 2008-6-3 08:08:
晕,要保存成vbs。
ps:无语。。。


我保存成VBS的运行后,提示我这个呢.怎么回事.

上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023