本帖最后由 happy886rr 于 2017-1-7 19:54 编辑
[2016/12/06]修复一处笔误。
THE OPT TO BYTE ARRAY LIB, COPYRIGHT@2016~2018 BY HAPPY, VERSION 1.0
opt2byte.LIB
摘要:
=============================================================================
这是可以解析命令行参数的库,用来帮助你快速构建命令行第三方工具的开关解析部分。
从此你无需再写开关解析。
=============================================================================
函数原型:
-----------------------------------------------------------------------------
//OPT转BYTE数组
byte* __cdecl Opt2Byte(
int argc, //argc
char** argv, //argv
char* optstr //开关正则
);
-----------------------------------------------------------------------------
引入:
-----------------------------------------------------------------------------
#include "opt2byte.h" //先引入头文件
#pragram commet(lib,"opt2byte.LIB"); //在项目中引入库文件
-lopt2byte -L./ //gcc连接参数
-----------------------------------------------------------------------------
命令开关正则语法:
-----------------------------------------------------------------------------
char* optstr="=/C* /U:utf-8 /CS /T* /D* /M* /?";
在上句opt正则中,其中第一个引号后的等号表示精确开关匹配,
即区分大小写匹配,不为等号则忽略大小写匹配。
其中*代表后继参数,一个*代表/C开关有一个后继参数。
其中:代表连参符,即/U开关后边无需空格即可连接参数,如/U:"utf-8"。
其中无*的开关表示没有任何后继参数。
opt2byte.LIB库,最大可支持99个开关解析,最多处理254个命令行参数。 当然你可以
在源码中修改以使其支持不限量的数目。
opt2byte.LIB库全部为本人原创,且不需要任何其他库文件,效率性能秒杀getopt函数,
无法解析的开关argv[unknown]将存入bp[100~127]的无法解析空间。 bp[0]表示解析状
态,即bp[0]为0时表示正常解析,否则其值为发生错误的argv序号。bp[1~99]为各开关
解析到的命令行参数argv序号。
-----------------------------------------------------------------------------
英译:
-----------------------------------------------------------------------------
THE OPT TO BYTE ARRAY LIB, COPYRIGHT@2016~2018 BY HAPPY, VERSION 1.0
-----------------------------------------------------------------------------
This is a library of command-line arguments that can help you quickly build
switch-resolution parts of command-line third-party tools.From then on you do
not have to repeat the write switch every time parsing.
-----------------------------------------------------------------------------
12/05/2016
核心代码:复制代码 使用示例:- #include <stdio.h>
- #include "opt2byte.h"
-
- int main(int argc, char** argv)
- {
- int i;
- char* optstr="=/D** /U: /S /T"; //这里填写命令开关正则
-
- byte* bp=Opt2Byte(argc, argv, optstr); //这里用来接收转化后的BYTE数组
-
- if(bp[0]==255){printf("没有任何参数\n");}
- if(bp[0]!=0){printf("在%s附近出现错误,可能是缺少参数,或是无法解析的开关\n", argv[bp[0]]);}
-
- for(i=1; i<=4; i++){printf("%d\n",bp[i]); } //打印分析后的开关BYTE数组参数
-
- return 0;
-
- }
复制代码 下载,base64加权码- @echo off
- setlocal enabledelayedexpansion
-
- ::*********BASE64 加权解码器*********
- set $=set [#]&CALL :BASE64_PRESS&set [$]=A&((for %%Z in ([,],{,},_,$,#,-,@) do (set [$]=![$]!![$]!&for %%S in (![$]!) do (for /l %%i in (1,1,6) do (!$!%%i=![#]%%i:%%Z=%%S!))))&for /l %%i in (1,1,6) do (set/p=![#]%%i:.=!<NUL))>opt2byte.BSEP&certutil -decode opt2byte.BSEP opt2byte.zip&pause&exit /b
- ::***********************************
-
- :BASE64_PRESS
-
- !$!1=UEsDBAo][BNPhkk}E]bGliL1BLAwQU]C[gs4VJYL47QeI]WAQ[Dg[AGxpYi9vcHQyYnl0ZS5o09fi5eL0Dwi5vsopMsT11N/rL3etP/V3/yOgaIiHqwJQRiHEXwEkp+AYFOQYqeDj6aSj4OwfEBnk6e4R4mBkYGhWByQsgGoUPBwDAiJ1FMJcg4I9/f0UDPUMgMbkF5QYJVWWpOoBdQK57s7OQDP8vK0UdHNgUgq6Pnr6vFxaQMzLpZyZlpeSmqYAkuDlKqksSAXxSvOKM9PzUlMUkjMSi8By1kClqXkpmWkgTfr6KH7g5QKp0FKIj09OSU3OUfAHWuQEFNHIzCtRSCxKT9YBm6OlBeKUQTkKQOcUlxRpAg0GAFBLAwQU]C[OT4ZJ/6T4/ccC[B8B[AE]GxpYi9vcHQyYnl0ZS5MSUKFVN1r01AUv2mjbrXsKkynT3YwJ4h07ZSRbnOII5vIOhXJBF3tug8/oDBxiVMws7gEEq7FPXQP/h8jICuY1WI7fBmdDwP7EKWCpT74IMheGs9tu63DOQ8k95xffufr3nvS2ht5PPGgz9Xh2S3+C5wvwAXOcwGPx0eBXW/4zm0xx1wIIQaekfC1R2Ln5WfiFJoGZRwU73THvtH8Pl9XV1dl7dyKNsQ4EZXjsByuaCzjFaeeimhHYg6EXsHqrlIr6T3o+ph3MiJG0P5yCflM7/jMzH9oKAY8Qf92a+Tm/I9RIjRk+PwkwIQ/clUXCjHuIk7wWWwEs/NfGGZFD6bf0ir0oTY2w7bFQP1Oo+i8SYSCmpOcH5Cd4S3KIXIhIFv4dQ8YGT5JaURKY+OgYmLFD6C2QgQ34S3CvtT5pbjYjuLJM5WaNj1Sc509gI0mwMTfNp8k8hI2WpScOBx/ss2Xs0gLLmtr0iktq308F+k9OeuMlTxaCDBqaetVe4Pjl7H6C1wGB6pRDkDo0jt4+XOQASdSfjO2eRYnzMY1rJaAqKxKjcWvtSKUVbxoVpmLKTUl
- !$!2=lQBQh23bJrIVDzNEThLBxAbb0sNbUhQCSXMDPaHCi874UjsttFYvCbqJnCbNb7BxiHNg5RPtoe8sVj+D0k895vIQSNsoZzUH4c359Oidu+HQe8KniWBhoyF+e3cuMRHYEBcgn5iCo7KInNfcLYO6nNdDFpxLYL0olW1byWG1G4rdo1XlGOCxObtb9PlNZZWCKek0beAGCVn9tIcr2ICjCsI5J8umxrpgO4qz4LUDa6wL9gFw2IriT0gIpWsn6urvL0YrDgJ10I4WW8FaAOmDtul4NSPvvYfRqdrNLNsI3We2Z2yi/taytZWBeXAwf9/q+kmin53Mc0dV25H6KXJUOHvEqZsg5z844YlINDq9VR7Ug5oouv2X+ANQSwMECg][FU+GSQ}Q[ABzcmMvUEsDBBQ]IAPxOhkmqG0n40gQ[HIJ[AO]c3JjL29wdDJieXRlLmOdVf9PWlcU/xkS/odrlhR4gPBYujTibaeLnWamGmeWmM4fBB/1pfh4AaRr1f0vnclmqcsiAxGQuVZEit2TiYLLErO0S7fGNFl1qbaGZPfc+97j6TJ/2A/w7pfP+ZzPOefec92cxWwaGBxuJLpHhntWn5HZcG8PIitoeADBGuoaGuoaQf193U700cDgyFDfx73DH3o9/Adfkr8rBIN6uwYHR5zos56hT/sGbiC+3UNownLM678bE9qJJZn29934pAO5QtoycvW3uy1mjvws5vfEoDQuBBFsWMyxu7IAsykpKt6ShHEUmBiL0D0fgQrSuBhsmQTGQqFwAOZSIDQ1LqDOaGw8JPrbJ662wBaz260HWWk2Xua+qzQtZqDk0ABR1E1GNlGKobHIrYCTOuQ4mMTVCSK6o7GI3WKeRiQat3ultPm8Vq1+k1QqzUqzuAqrQBAGBgx/Lt5HkYAo1Cq79eXdA0Cp5ACMAzAOMB35468rtdKxxiZij76r7GfmC8+UN4BKF1MvMusbJyu/a8gp6bYUviNh3tOyYJorjUY9
- !$!3=c6ok0uXc+tzCzmGlpiQ239aqq4ns3g9vN04y9dRR9X41RUxoYVCYGAXGogK2cYwBYyu22q/xHS3q9erSVmUj83o1Ufqbmc8tFE6WTqr7u02w1wOlbNimc2Lefo2xOvgONjDqXSw/3YMCIVUNh/wyttGRnZXaxnuvOFFUvCeEg3TDbvdZzNS+/Ef2dC1fq0KGINL6ml8GskpDySsJ7+XLNFlBG6sR9tin/fJNzyj2fHH9um9WUwEh1Y9//jafAfidCTEk2GwOh2jvxNTQPk3dEeST+bU/oarZl0reBMZayDIOq3FRvuxe9TC3DihYgWohNMkqS62YD5LsNmz93GMFByawzDYfb67uLr+moBaKlAMRUFh2OKhqRmLw1DpDJtMkARkxhYeQnc2fygeL5cJW6ZguM9lxmQYYvymOGkxUt/Gz4gjTo18qi8vz9XeQAbZG72lM5jER6SQDLyZmPg2vHQEl4YHi5N483iEnJwUyGEQMGo6JR3NkAkKbdczaiYEbXboEn05svUeOJBm53vd2kI9PR3tbaC9De3W0l6G9KnpW05bMb/2WLu8c1smxRroaQtuGCZqck4gwdltNtgkS7yTZ0jKrnhzgicuQje1SulB8oCS12wa39vsn2a8ZMyFmPJBUzJKKiFB1UY1DqzOamTmzwv1rhdhbzAjmduoAmVjqkMlwT5XEo4WkAgdEj46zhWUXbycMHXpVTeRCTI5iUcsmi1udsI+RU9mHwwSsatJmhVBUQECuyp+Z0UX+Tx+pk4t9cFYosujgDdfT6MbBX+gIumplafGvdBFcFB8sbZJG9jD1SjlS8vW11IvygV+G/mF0bvDgMQQSEWJTEYk0rDOny2jRahm5o+2SSnnu9pNg2PjcHW/ddDqymM+mSXsd0kXW/ZJfgXbtWdBeCqg7zUsbFiFt2tjBI90vp1WKbKrmDoceZiAsxURpSvCdUwK9V0lwqXeLr2rV3NHKU60Jw7d0DC3p/hyVYOxjui92
- !$!4=p0TtShGZ4tUz5VRz7dKqeS7ZVIkuA0qZOd3YBt/JfOM56PjvokLfUfse+KC9mwzOeb7AL/zN0rcjk87vwZsEr4723hstCOofUEsDBBQ]IAPiyhUmzJRLhPwU[O8M[AK]cmVhZG1lLnR4dLVW/08TZxj/mUvuf3jXxQSQcoXIJmKX6WTTxAyCuIQ4Yo72oBfbu+56xZBF/xe8bZJa41qva2kpJ3BAW/S4tNcyicEFyebCgEiTblG77H16lsIU/aW8bdrkeZ/n83x/3qf/fDfq6e1H/T3o7EB/NzrT13dmAF28cLYFfdHTO9B34avz/Z+329o+uYl/TmIedP5Mb+9AC/qmu+/ShZ6vUVurjSR4r9g+NCYyrViQJEgiH8gGpDhJ2Ot5MOx6ZlFJZ43kulaaez2zrethLVOOqMq6FMzNPZB/3im8VJ8pfy09npxMTpgckdVUOZqc/GH6KeYLTP4KsmElWhiXSELOyUvqM21Nf2481uXqLdzY63kgIiQRv5cpG3f1R6dIwlrPQxIUhTO4EoD8Zcorf5IEpKIZXb3qcDION+rByTmLKY0k0cByIqKFEUcLeu+hKGBCWMDhooXmZpAZbfmQwOieAMIF4ROF9wpAuPNlY5ckmrrqHhL4ZMupTShCaz0PSXzMcg6338kgy17Vuyzv9XQ5BaY8imrq1L9Y3ivQIwLtQQ7e42HERjc71GLZ30CWpq6D8sbq8raqFHRAUdZNFKu7KoKsF1sp9KFDUSMOx0wwmYOOOZJw5+aiE0cZ7tM+0cnyra7PDkkB2ADl7aFZrrFW5/sKuIkkvieJ/9Wo3WKnzmEGRF0+hahLiOq3dNWCll9/sPNwW5dhltQKFkOYLTbkte91l6nObBQTuqmrCgHDKZnL5FcCiXvxYkSttSr05HDjkPeKbfAjuw1b2IBNbNij2e3tHR1ANckNXgF7NtxomUvk9JQW1yCb33IW6KCGhhuM28cc5DNWj/liyeTr+6XlgrylFaWg
- !$!5=klafZBZTofRjkJWCid3MorYWnYDJZ05IjGf6caViwiCAV+ArfxUlqGafremwgpN3c+PRglaKF03cqtOgd89PnCe2613ycDvMC42sva0LsaftJ/Dv8eNmKA7j33P7mBOcwBayg29CQxJv7BcY0S9wyAZkkrhxJK2wv1pyO0fSFh8qYTDDWE0vT29gHrCjoEtBk10LvM0vBdHCRgE/ltlErBRJxedDW5np6TupKLix8OP8hhQkiSl58Z9oQS7q47ps0lJ/TL4KJ7QASBi78dKsUbuFZ5QkALVZfhnaihenHpoVN5OMlSok6hyg53QgVK/HJVPmFDDMBMNa9JUUnJKpy8AaL4aewmut5GMvpmQlXZ1nYAj2xeIXh60nLVUIba3ZLDzwpdow+/Uc3FtgiVjZlotKunD7fqGzM1aqLgRA/+U3+acHW+0dJ2L7No9xCUVCqYT6DJYSiLchz24WdH0tpmaNzOTCBiCFE8trM0pEzZRV5V1aU3fCihYITaeWjLuyLAUXs+GE/jwbAGsXNpZemRNfCuq3ZzO6oT6Z20yHRhgRg8BGAXk52L6VzvVz1zj+OjeYvCP/ntrEjdBms91sa/90MKJWuZX8FM4RqrQxRAhoKzJJPAxCwCtkLWDLhOAuX74vmZGIvjB2sV8RLRC9lX4JIyWigkZ9Nz4/LoGim52dWDD2N9hCEhW7khG1FrQa99E8Q7eyR/Hq12dPttbZKBfrQ/hLI7xECLQwhvjhylpBc06rm+UYGON+D8OJPoREFy0iB80h5GLcXjTG+9F3ftZxzT2Ghvys24knqO86KzpcVoHx8W6/yPIc8tKC6HsLVXSxgtMKd2NI5Hm3r/VLgfdgMsMhnqtAO3mMx/EictGjWIBHAuNlaBF40HWBxWuLqQwxowy2W2Q9DCjzsdxIa93j1NZO2TooyM5/UEsBAh8ACg][E0+GSQ}QAJ{[Q{AGxpYi8KAC{EAGADGIjv8Y0/SAcYiO/xjT9IBwLl+V
- !$!6=/tO0gFQSwECHwAU]C[gs4VJYL47QeI]WAQ[DgAk{AC]Ai]bGliL29wdDJieXRlLmgKAC{EAGABSirFcA0/SASuYC9pjT9IBK5gL2mNP0gFQSwECHwAU]C[OT4ZJ/6T4/ccC[B8B[AE[k{AC]AwAQ[bGliL29wdDJieXRlLkxJQgoAI{QAYAIUaxPVjT9IBJbnB9WNP0gElucH1Y0/SAVBLAQIf[o][BVPhkk}EACQ{AE]CUE[BzcmMvCgAg][ABABgAgWEv/mNP0gGBYS/+Y0/SARp2aAL8TtIBUEsBAh8AF]AgA/E6GSaobSfjSB[Acgk[A4AJ{[g]RwQ[HNyYy9vcHQyYnl0ZS5jCgAg][ABABgAZOdl4mNP0gGL+Q3aY0/SAYv5DdpjT9IBUEsBAh8AF]AgA+LKFSbMlEuE/BQ[7ww[AoAJ{[g]RQk[HJlYWRtZS50eHQKAC{EAGABJGiYyA0/SAYv5DdpjT9IBi/kN2mNP0gFQSwUG][YABgAqAg[rA4]A
- goto :EOF
复制代码
|