Board logo

标题: [文本处理] 【已结】文本行合并成段落求救 [打印本页]

作者: bakdfkuk    时间: 2009-2-28 08:26     标题: 【已结】文本行合并成段落求救

有形如:
    1、虽然我是一个批处理
菜鸟,但是我很喜欢批处理,望各们
高手们能给我
一些帮助。
    2、批处理化繁为简,提高
工作效率,而且
学习起来相比其它语言相对简单!我一定要好好学习!

的一个文本文件,它们的各段被分成了几行,而且各行的长度都不同,现在要把它们合并成二个完整的段落,用批能完成吗?希望大家能够帮帮我,非常感谢!

[ 本帖最后由 bakdfkuk 于 2009-3-1 08:43 编辑 ]
作者: batman    时间: 2009-2-28 09:54

还请楼主提出具体的要求,最好是要给出示例文件。。。
作者: bakdfkuk    时间: 2009-2-28 10:27     标题: 合并要求

合并后是这样的:
1、虽然我是一个批处理菜鸟,但是我很喜欢批处理,望各们高手们能给我一些帮助。
2、批处理化繁为简,提高工作效率,而且学习起来相比其它语言相对简单!我一定要好好学习!
希望大家帮忙!急处理大批文件。
作者: batman    时间: 2009-2-28 10:49

还请楼主先予以说明:
一、具体行合成段落的规则是什么?
二、每段遇要分行的情况下怎么办(一行写不完)?
三、最好能给出实际的示例文件及内容。
作者: namejm    时间: 2009-2-28 10:52

  代码再智能,也还没有达到能模拟人脑思考的地步,如此无规律的文本,要整理出来,非得靠手工不可。
作者: more    时间: 2009-2-28 11:32

不知道楼主是不是这个意思:
  1. @echo off
  2. for /f "delims=" %%a in (1.txt) do (
  3.   set str=%%a
  4.   setlocal enabledelayedexpansion
  5.   if "!str:~,1!"==" " (
  6.     echo.&set/p=!str!<nul
  7.   ) else (
  8.     set/p=!str!<nul
  9.   )
  10.   endlocal
  11. )
  12. echo.&pause
复制代码

作者: bakdfkuk    时间: 2009-2-28 18:13     标题: 谢谢啊!

谢谢啊!就是上面的这个批处理就搞定了!I 服了you!
作者: Batcher    时间: 2009-2-28 18:18     标题: 回复 7楼 的帖子

如果有人帮你解决了问题,建议进行以下操作:

1、修改帖子标题,在标题最前面注明:【已结】

2、给竭尽全力帮你的人、正确回答问题的人加分(你自己的积分不会减少)以示感谢,虽然大家来论坛是为了学习而不是为了积分,但加分聊表谢意总是或多或少能够让花费了时间和精力无私帮助你的人略感欣慰。

3、如果你是在别人的提示下自己写出了代码,请把自己的方法贴出来跟大家分享一下,也许他人可以帮你指出代码中的不足之处、告诉你如何提高执行效率等,有交流才能更快地进步。

作者: bakdfkuk    时间: 2009-2-28 18:23     标题: 谢谢啊!

代码完成了想要的功能,但是我是一个批处理新手,对于代码中:
1、"delims=" 是不是说明1.txt中没有分隔符?   
2、"!str:~,1!"==" 是不是字符串的截取,如果是的话那个“~”后不带数字是不是系统会自动加上,默认的是不是0?
3、set/p=!str!<nul  这一句怎么解释?set 加上/p一般是让用户自己输入(目前我了解到的,真是太肤浅了),难道还有其它的功能? 还有就是那个<nul是什么意思?只见过>nul啊。希望高手能帮我解释一下,非常谢谢!
作者: zjw767676    时间: 2009-2-28 18:57     标题: 回复 9楼 的帖子

1、2的理解是正确的!set/p=!str!<nul是不分行显示变量str 的内容,<nul相当于不按回车换行




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