![]() |
中国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: 确实是的 我开始写了一个逐字处理的 但效率不怎么样 因为看楼主的范本就是两行相隔的 故。。。 [ 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: |
|
| 第21楼 zhengruijian | 发表于 2008-06-02 06:17 |
| 初级用户 发帖 24 积分 54 | |
Originally posted by terse at 2008-6-1 23:08: 您说得对,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: 这段程序怎么用的,我把它保存成.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的运行后,提示我这个呢.怎么回事. ![]() |
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |