注意,本项目由高手协助编写,尽量不要来一些意义不大的回复!
库文件是什么,大家可能看不懂。。。
现在正在编写一个批处理编写的软件,另辟蹊径。。。
这个软件的看点在于,对于复杂的编写只需要一行带过,然后再给加入功能相应的库文件。。。
首先,在这软件中编写批处理生成的是bcp工程文件,工程文件分三部分,头部、代码、库文件。。。
例如,我想实现统计变量长度的功能,只需要 call enStr var varlen 就可以了,变量var的长度保存在了varlen里面,然后在工程里面添加上“LenStr.bcl”文件。而在“LenStr.bcl”文件里面已经为我们写好了获得变量长度的功能。
当bcp需要编译成bat的时候,软件会将头部(color、mode等命令)和代码,还有库文件中的定义都保存进bat去。。。
现在大家大概都明白了库文件的意思了吧。。。
(对,库文件就像C++的头文件一样,帮你把麻烦的事情做好,你需要用只需要一句#include就可以了。。。)
那么我的项目就是希望大家能帮忙编写多点库文件。。。
现在大概有四个类别的库文件:数组(想高级语言一样,伪数组)、计算(浮点运算)、字串(常用处理,获取长度等)、时间(加减、比较等)
现在请大家帮忙编写库文件。。。
库文件的格式如下: | 库文件版本 | | 库文件作者 | | 库文件所需要其他库文件的支持 | | 使用库文件需要保留的内容 | | 描述 | | | | 开始定义COPY |
如果实在不懂,我附上我自己写的NewArray.bcl库文件,实现定义一个1~3维的数组: | 1.0 | | BatCodeer | | 不需要其他库的支持 | | Newarray标签,arrays变量 | | 定义了NewArray标签,用于定义新的数组,支持1-3维度。 | | 用法:call :NewArray "Array" "Var" | | Array是形如array_2的字串符,其中array是数组名,2是一维长度。Var是数组的缺省值。定义二维数组则是形如array_2_2,三维则是array_2_2_2。 | | 例如call :NewArray "array_2_2" "0",执行后变量array_1_1、array_1_2、array_2_1、array_2_2的值均为0 | | 使用本库的时候可以给参数外加上双引号(如"array_2_2"),本库会自动处理 | | 使用本库需要保留Newarray标签,arrays变量 | | | | :NewArray | | if "%~1"=="" goto :EOF | | for /f "eol= tokens=1-4 delims=_" %%1 in ("%~1") do ( | | if "%%~2"=="" goto :EOF | | set arrays=%arrays%%%1; | | if "%%~3"=="" ( | | for /l %%a in (1,1,%%2) do ( | | set "%%1_%%a=%~2" | | ) | | goto :EOF | | ) else ( | | if "%%~4"=="" ( | | for /l %%a in (1,1,%%2) do ( | | for /l %%b in (1,1,%%3) do ( | | set "%%1_%%a_%%b=%~2" | | ) | | ) | | ) else ( | | for /l %%a in (1,1,%%2) do ( | | for /l %%b in (1,1,%%3) do ( | | for /l %%c in (1,1,%%4) do ( | | set "%%1_%%a_%%b_%%c=%~2" | | ) | | ) | | ) | | ) | | ) | | ) | | goto :EOFCOPY |
那么请大家协助我完成库文件的编写!
(以下两张图,一个是头部的设置,一个是库文件的界面) |