Board logo

标题: 【出题】批处理如何对文章作折行处理? [打印本页]

作者: plp626    时间: 2011-3-3 01:15     标题: 【出题】批处理如何对文章作折行处理?

一篇txt文档,含有中文(占%30),也含有一些程序源代码(单词长度不超过16个字节,数字长度不超过12个字节),含有一些制表符,但有些行过长(假设最长1200个字符)

现在想把这些过长的行折到下一行,使得每一行长度为不超过80个光标的宽度(每行的字符串字节数不超过80);

但是,行末的数字,数学表达式(一般较短,不超过20个字节)不能被拆分,尽量不要让行末的英文单词被拆分,可以通过对“,”、“。”后多添加一个空格把这个单词全部放到下一行,而如果这个行末的单词过长,即使增加了2-4个空格也还是得被折到下一行,请用连接符“-”将它连接起来;

对于制表符也要考虑进去,不能使一行的单词与单词或汉字之间制表符(提示可以根据情况将它替换为1-8个空格)的距离发生变化;

行首不能以标点符号开头;

现在征集代码,需要能处理文档中的特殊符号,处理速度较快;

[ 本帖最后由 plp626 于 2011-3-3 16:54 编辑 ]
作者: batman    时间: 2011-3-3 08:48

这可不是一般的难!先占位思考。。。
作者: CrLf    时间: 2011-3-3 12:48

最简单的办法是扔到notepad里,windows心情好的时候会自动给过长的行加上换行符,狗日的自动“智能”断行终于有了点作用,话说我弃暗投明前可没少吃自动“智能”断行这诡异功能的苦,写代码的时候时不时给你断一下行,一调试就出错,烦不胜烦
作者: Batcher    时间: 2011-3-3 12:56     标题: 回复 3楼 的帖子

而如果这个行末的单词过长,即使增加了2-4个空格也还是得被折到下一行,请用连接符“-”将它连接起来

notepad有这功能?
作者: CrLf    时间: 2011-3-3 14:27

回4楼:不太清楚,不过从代码常被断行这一点上来看,应该是有吧。而且如果只是换行也就算了,notepad那是断行...着实可恶
作者: Batcher    时间: 2011-3-3 23:23     标题: 回复 5楼 的帖子

你见过notepad断行的时候还给你自动加连接符?
作者: plp626    时间: 2011-3-5 10:38

真的很难么?
作者: netbenton    时间: 2011-3-10 21:46

要考虑制表符有点难,因为其在不同的位置所代替的空格数是不同的(可以是1~8),如果一行中有N个制符时,就求制符所在的位就够折腾的了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2