Board logo

标题: [原创] VBS截取取文本文件10行 [打印本页]

作者: myzam    时间: 2011-3-6 11:15     标题: VBS截取取文本文件10行

前言:我为啥写这个脚本?
           原因如下:我在网上下载txt小说,原来我是看小说,看够了,现在我是听小说。我是把下载的
小说用方正畅听转换为mp3来听。但是一部小说实在是太大了,转起来慢。于是我就要把小说分段成一
个又一个小的文本,而且要相互连续的。复制剪辑,复制剪辑,复制剪辑,点点点,累了。
          就这样为了 简化这个重复的工作,就编了这个脚本。一般我是以300行为为一段。
  1. '我从j盘的文件 "沙舞九天.txt"中截取前10行,并copy到桌面的文件14.txt中
  2. set fso=createobject("scripting.filesystemobject")
  3. set ofile=fso.opentextfile("j:\沙舞九天.txt",1)
  4. 'for i=1 to 10   '如果需要跳过前10行就把注释去掉
  5. 'ofile.skipline
  6. 'next
  7. for i=1 to 10   '截取10行
  8. t=ofile.readline
  9. j=j&t
  10. ofile.skipline
  11. next
  12. wscript.echo j
  13. ofile.close
  14. set ofile=fso.createtextfile("c:\documents and settings\administrator\桌面\14.txt")
  15. ofile.write(j)
  16. ofile.close
  17. if fso.fileexists("c:\documents and settings\administrator\桌面\14.txt") then
  18.   wscript.echo "文件成功创建"
  19. end if
复制代码
下面给出图像界面版,就是hta(哈特版),文件必须保存为.hta   .
  1. <html style="background:buttonface">
  2. <head>
  3. <title>读取的文本时,跳过的行数是基数的倍数 作者:myzam 2011-3-6</title>
  4. <hta:application id="vbs"  scroll="no" >
  5. </head>
  6. <body>
  7. <input name=button1 type=button value="运行"  onclick="vbs:build"/><br/>
  8. <hr/>
  9. <label>输入源文件名</label><br/>
  10. <input name=text4 type=text value="铁血上甘岭"/><br/>
  11. <hr/>
  12. <label>输入源文件路径</label><br/>
  13. <input name=text5 type=text value="d:\" /><br/>
  14. <hr/>
  15. <label>输入截取的文件名,从数字一开始命名</label><br/>
  16. <input name=text1 type=text value="1"/><br/>
  17. <hr/>
  18. <label>输入要跳过的基数</label><br/>
  19. <input name=text2 type=text value="300"/><br/>
  20. <hr/>
  21. <label>读取的文本</label><br/>
  22. <input name=text3 type=text  />
  23. <script language="vbscript">
  24. sub build
  25.    n=text1.value
  26.    m=text2.value
  27.    p=text5.value&text4.value&".txt"
  28.    fname=n&".txt"
  29.    set fso=createobject("scripting.filesystemobject")
  30.    set ofile=fso.opentextfile(p,1) ' 这是要读取的文本的位置
  31.    on error resume next
  32.    for i=1 to m*(n-1)
  33.        ofile.skipline
  34.    next
  35.    for i=1 to m
  36.         t=ofile.readline
  37.         j=j&t
  38.    next
  39.    ofile.close
  40.    set ofile=fso.createtextfile("c:\documents and settings\administrator\桌面\"&fname)
  41.    ofile.write j
  42.    text3.value= "第"&n&"次"&"读取成功"
  43. end sub
  44. </script>
  45. <br/>
  46. <hr/>
  47. <pre>
  48. 说明:本代码的作用是把一个小说顺次分解为若干个小的文本文件,注意是顺次。只能处理txt文件。<br/>
  49.       用法---输入源文件名,是指你本地磁盘存放的要分解的小说名。
  50.              输入源文件路径,是指你本地磁盘存放的要分解的小说的完整路径。
  51.              输入截取的文件名,是指你分解后的小说文件名,要求以数字1,2,3....命名。
  52.              输出的小说名字是1.txt,2.txt,3.txt...   
  53.              输入要跳过的基数,是指你分解后的小说包含的行数。分解好的小说自动保存在
  54.                                 你的桌面上。</pre>
  55. </body>
  56. </html>
复制代码


本图片来自104空间



[ 本帖最后由 myzam 于 2011-3-7 21:51 编辑 ]
作者: Batcher    时间: 2011-3-27 23:12

GNU for Win32的split命令挺方便的




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