Board logo

标题: 把内容上有一定规律性的较大的文本分成多个小文本? [打印本页]

作者: zzhh612     时间: 2007-3-29 08:25    标题: 把内容上有一定规律性的较大的文本分成多个小文本?

我有一个较大的文本如下:
//@函数名称:     abs
//函数原型:      int abs(int x);
//函数功能:    求整数x的绝对值
//函数返回:       计算结果
//参数说明:
//所属文件:      <math.h>,<stdlib.h>
//使用范例:
#include <stdio.h>
#include <math.h>
int main()
{
   int number=-1234;
   printf("number: %d absolute value: %d",number,abs(number));
   return 0;
}


//@函数名称:     fabs
//函数原型:      double fabs(double x);
//函数功能:    求x的绝对值.
//函数返回:       计算结果
//参数说明:
//所属文件:      <math.h>
//使用范例:
#include <stdio.h>
#include <math.h>
int main()
{
    float  number=-1234.0;
    printf("number: %f absolute value: %f",number,fabs(number));
    return 0;
}




//@函数名称:     sin
//函数原型:      double sin(double x);
//函数功能:    计算sinx的值.正弦函数
//函数返回:       计算结果
//参数说明:      单位为弧度
//所属文件:      <math.h>
//使用范例:
#include <stdio.h>
#include <math.h>
int main()
{
    double result,x=0.5;
    result=sin(x);
    printf("The sin() of %lf is %lf",x,result);
    return 0;
}
.........

   我想要以"//@函数名称"之前为界,将一个个C语言的函数说明分成单独的以函数名为文件名的文本文件,
因数量较多,想用批处理完成,但不知如何着手,望高手指点?

[ Last edited by zzhh612 on 2007-3-29 at 09:49 AM ]
作者: jmz573515     时间: 2007-3-29 12:01

On Error Resume Next
set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("a.txt",1)
if err.number<>0 then
  err.clear
  msgbox "对不起,没有找到a.txt文件!",4096,"错误"
  wscript.quit
end if
do while file.AtEndOfStream <> True
m=file.readline
if left(m,7)="//@函数名称" then
set cfile=fso.createtextfile(trim(mid(m,9)) & ".txt",true)
end if
cfile.writeline m
loop
file.close
msgbox "文件分割完成!",4096,"提示"

作者: zzhh612     时间: 2007-3-29 14:54
楼上的VBScript功力不错,我试了下,还可以,不知这种事DOS的批处理能完成吗.DOS要基础一些,我是想在运用中得到学习.谢了.

[ Last edited by zzhh612 on 2007-3-29 at 03:03 PM ]
作者: ccwan     时间: 2007-3-29 23:52

@echo off&setlocal enabledelayedexpansion
for /f "tokens=1*" %%i in (test.txt) do (
    set var=%%i
    set str=%%j
    if "!var:~3,4!"=="函数名称" (set lxm=%%j&>>!lxm!.txt echo !var! !str!
    ) else (
    >>!lxm!.txt echo !var! !str!
    )
)
格式略有变化,主要是空格。
作者: ccwan     时间: 2007-3-30 03:01
代9527兄发出他写的代码,非常符合楼主要的代码格式。
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims=@" %%a in (test.txt) do (
    if "%%a" equ "//" (
    call:P "%%b"
    ) else (
    >>!a! echo %%a%%b
    )
)
goto:eof

:P
for /f "tokens=1* delims=: " %%x in (%1) do set a=%%y.txt&>>!a! echo %%a%%b
goto:eof

作者: zzhh612     时间: 2007-3-30 10:01    标题: ccwan老兄代发的代码也不错,满意.

jmz573515的代码和ccwan老兄代发的代码达到了相同的效果.
真是异曲同工.看来我要学的路还长,"路漫漫其修远兮,吾将上下而求索...