中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 把内容上有一定规律性的较大的文本分成多个小文本?
作者:
标题: 把内容上有一定规律性的较大的文本分成多个小文本? 上一主题 | 下一主题
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『楼 主』:  把内容上有一定规律性的较大的文本分成多个小文本?

我有一个较大的文本如下:
//@函数名称:     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 ]

2007-3-29 08:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 2 楼』:  


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,"提示"


2007-3-29 12:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『第 3 楼』:  

楼上的VBScript功力不错,我试了下,还可以,不知这种事DOS的批处理能完成吗.DOS要基础一些,我是想在运用中得到学习.谢了.

[ Last edited by zzhh612 on 2007-3-29 at 03:03 PM ]

2007-3-29 14:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 4 楼』:  


@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!
    )
)
格式略有变化,主要是空格。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-3-29 23:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 5 楼』:  

代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




三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-3-30 03:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『第 6 楼』:  ccwan老兄代发的代码也不错,满意.

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

2007-3-30 10:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: