[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
原帖由 batman 于 2011-2-27 14:58 发表
以下代码没有考虑特殊字符的情况,所取分隔符为每行最后一个(考虑了一行有10个以内相同分隔符的情况),楼主先测试吧:@echo off&setlocal enabledelayedexpansion
set /p zx=请输入最小字符数:
set /p zf=请输入 ...


版主您好 我测试了 用不了哦 没有分隔开 只是在原内容后多了几个分割符号。

TOP

回复 10楼 的帖子

如果根本没有那个分隔符呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2011-2-27 16:16 发表

为啥一定是4个小文件呢,你怎么知道500个字之后一定会有“章”?
能否在顶楼给点真实的文件作例子啊?


简单说就是正则表达判断,首先根据规则找到文章中的首先出现的分隔符,然后判断这个分隔符之前有多少个字,如果符合我设定的最低字数就以这个分隔符将之前内容分割为一个单独的小文件,如果不够我设定的最低字数,就查找下一个分隔符出现的位置,再判断是否够最低字数,如果够就从这里分割,重复以上步骤,直到把整个文章全部分割完。

[ 本帖最后由 chuan31 于 2011-2-27 18:05 编辑 ]

TOP

共有2000字,我设定最小字数为500字,分割符为“章”,那么这个文件即被分为单独的4个小文件

为啥一定是4个小文件呢,你怎么知道500个字之后一定会有“章”?
能否在顶楼给点真实的文件作例子啊?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

不用逐字符法,真的有点困难:

以下代码没有考虑特殊字符的情况,所取分隔符为每行最后一个(考虑了一行有10个以内相同分隔符的情况),楼主先测试吧:
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p zx=请输入最小字符数:
  3. set /p zf=请输入分隔符:
  4. set /a n+=1
  5. for /f "delims=" %%a in (a.txt) do (
  6.     set "str=!var!%%a"&set /a min=0,pin=8190&set "var="
  7.     for /l %%a in (1,1,14) do (
  8.         for %%a in (!pin!) do (
  9.             if "!str:~%%a!" equ "" (
  10.                set /a max=pin
  11.                ) else (
  12.                set /a min=pin
  13.             )
  14.             set /a "pin=(max+min),y=pin%%2,pin=pin/2+y"
  15.         )
  16.     )
  17.     set /a num+=pin
  18.     if !num! geq %zx% (
  19.        if "!str:%zf%=!" neq "!str!" (
  20.           set "var=!str!"
  21.           for /l %%a in (1,1,10) do set "var=!var:*%zf%=!"
  22.        )
  23.     )
  24.     if defined var (
  25.        for %%a in (!var!) do echo !str:%%a=!>>!n!.txt
  26.        set /a n+=1,num=0
  27.        ) else (
  28.        echo !str!>>!n!.txt
  29.     )
  30. )   
  31. echo 搞定。&pause>nul
复制代码

[ 本帖最后由 batman 于 2011-2-27 15:47 编辑 ]
***共同提高***

TOP

顶起来啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TOP

顶起来啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TOP

顶起来啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TOP

老大们 帮帮忙啊!

TOP

原帖由 wc726842270 于 2011-2-25 22:55 发表
RE 空格和空行算不算?


空格和空行不算!

TOP

RE 空格和空行算不算?
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

返回列表