原帖由 batman 于 2008-8-5 20:24 发表
谢谢兄弟指出,我的第二个代码已修正,其实3楼的代码并不通用,如下测试结果:
测试文本:
1.txt
29324200852651210028213071109630551685419682237192661910031596813525985
13919282422170532368385309906 ...
是的 我在3楼的代码正如兄指出的通用性不是很好 于是改为多步算法 用100多KB的文件试下 效率似乎高多了 一样没临时文件
不知什么原因用兄 二楼的通用代码试那100多KB的文件在我这里出错了
- @echo off&setlocal enabledelayedexpansion
- for /f "skip=1 tokens=1* delims=:" %%i in ('findstr /o ".*" 2.txt') do (
- set/a m+=2,n=%%i-m-t,t=%%i-m
- set str=%%j
- if !n! gtr !d! set/a d=n
- )
- for /f "skip=1 delims=:" %%i in ('^(echo %str%^&echo.^)^|findstr /o ".*"') do set/a m=%%i-3
- if %m% gtr %d% set/a d=m
- for /l %%i in (1,1,%d%) do set "var=$!var!"
- for /f "delims=" %%i in (2.txt) do (
- set str=!var!%%i
- set .!str:~-%d%! $!random! !random! !random!=a
- )
- for /f "delims=.=$" %%i in ('set .') do echo %%i
- pause
复制代码 漏了最后行的$ 补上
唉!还是发现我的计算还有问题 继续修正
重复行和空格问题 只能处理一项 等有完善方案
我想这样处理重复行和空格问题 也好 就一个分割符的问题了 文本中有分隔符 就处理不了
[ 本帖最后由 terse 于 2008-8-7 01:44 编辑 ] |