根據碼值,隨機組建檔案名組合

來源:互聯網
上載者:User

// FileNameCom.cpp : Defines the entry point for the console application.<br />//<br />#include "stdafx.h"<br />#include "stdio.h"<br />#include "string.h"<br />#include "stdlib.h"<br />#include "windows.h"<br />#include "time.h"<br />typedef struct<br />{<br />unsigned short from;<br />unsigned short to;<br />}SCODESECTION;<br />SCODESECTION codesection[6]={<br />{0x8140,0x81fc},{0x824f,0x83d6},{0x8440,0x84be},<br />{0x8740,0x879c},{0x889f,0x9ffc},{0xe040,0xeaa4}<br />};<br />#define LAWLESS(code) (code==0x2e||code==0x22 || code==0x2a ||code==0x2b || code==0x2c || code==0x2f ||/<br />code==0x3a || code==0x3b || code==0x3c ||code==0x3d || code==0x3e || code==0x3f ||/<br />code==0x5b || code==0x5c || code==0x5d || code==0x7c)/<br />#define NUM(code) (code>=0x30&&code<=0x39)<br />#define LETTER(code) ((code>0x41&&code<=0x5a)||(code>0x61&&code<=0x7a))<br />//(code>0x8140&&code<0xeaa4)<br />#define SJIS_SINGER(code) (code>=0xa1&&code<=0xdf)<br />#define SJIS_SIGN(code)(code>0x8140&&code<0xeaa4)<br />static unsigned char lawless[]={'"','*','+',',','.','/',':',';','<','=','>','?','[','//',']','|'};<br />/* atoi: convert s to integer; version 2 */<br />int atoi(char s[])<br />{<br />int i, n, sign;<br />for (i = 0; isspace(s[i]); i++) /* skip white space */<br />;<br />sign = (s[i] == '-') ? -1 : 1;<br />if (s[i] == '+' || s[i] == '-') /* skip sign */<br />i++;<br />for (n = 0; isdigit(s[i]); i++)<br />n = 10 * n + (s[i] - '0');</p><p>return sign * n;<br />}<br />int isprint(unsigned short sjiscode)<br />{<br />unsigned char codeTmp;<br />codeTmp=sjiscode&0x00ff;<br />if(codeTmp>=0x40)<br />{<br />for(int i=0;i<6;i++)<br />{<br />if(sjiscode>=codesection[i].from&&sjiscode<=codesection[i].to)<br />return 1;<br />}<br />}<br />else<br />;<br />return 0;<br />}<br />int CreateAllLawlessFile(int num)<br />{<br />FILE* pfLawless;<br />int i,j,k,m,len;<br />unsigned short code;<br />unsigned char codeSigner,codeNewLine,codeHigh,codeLow;<br />pfLawless=fopen("lawless.txt","wb");<br />if(pfLawless==NULL)<br />return -1;</p><p>srand(time(NULL));<br />for(i=0;i<num;i++)<br />{<br />len=0;<br />k=rand()%36;<br />for(j=0;j<=k;j++)<br />{<br />m=rand()%0x10;<br />fwrite(&lawless[m],1,1,pfLawless);<br />len++;<br />if(len>37)<br />break;<br />}<br />codeNewLine=0x0d;<br />fwrite(&codeNewLine,1,1,pfLawless);<br />codeNewLine=0x0a;<br />fwrite(&codeNewLine,1,1,pfLawless);<br />}<br />fclose(pfLawless);<br />return 0;<br />}<br />int CreateAllNumFile(int num)<br />{<br />FILE* pfNum;<br />int i,j,k,len;<br />unsigned short code;<br />unsigned char codeSigner,codeNewLine,codeHigh,codeLow;<br />pfNum=fopen("num.txt","wb");<br />if(pfNum==NULL)<br />return -1;</p><p>srand(time(NULL));<br />for(i=0;i<num;i++)<br />{<br />len=0;<br />k=rand()%36;<br />for(j=0;j<=k;j++)<br />{<br />code=0x30+rand()%0x0a;<br />codeSigner=(unsigned char) code;<br />fwrite(&codeSigner,1,1,pfNum);<br />len++;<br />if(len>37)<br />break;<br />}<br />codeNewLine=0x0d;<br />fwrite(&codeNewLine,1,1,pfNum);<br />codeNewLine=0x0a;<br />fwrite(&codeNewLine,1,1,pfNum);<br />}<br />fclose(pfNum);<br />return 0;<br />}<br />int CreateAllLetterFile(int num)<br />{<br />FILE* pfLetter;<br />int i,j,k,len;<br />unsigned short code;<br />unsigned char codeSigner,codeNewLine,codeHigh,codeLow;<br />pfLetter=fopen("letter.txt","wb");<br />if(pfLetter==NULL)<br />return -1;<br />for(i=0;i<num;i++)<br />{<br />len=0;<br />k=rand()%36;<br />for(j=0;j<=k;j++)<br />{<br />code=0x41+(rand()%0x3a);<br />if(LETTER(code))<br />{<br />codeSigner=(unsigned char) code;<br />fwrite(&codeSigner,1,1,pfLetter);<br />len++;<br />if(len>37)<br />break;<br />}<br />else<br />continue;<br />}<br />codeNewLine=0x0d;<br />fwrite(&codeNewLine,1,1,pfLetter);<br />codeNewLine=0x0a;<br />fwrite(&codeNewLine,1,1,pfLetter);<br />}<br />fclose(pfLetter);<br />}<br />int CreateAllSJISFile(int num)<br />{<br />FILE* pfSjis;<br />int i,j,k,len;<br />unsigned short code;<br />unsigned char codeSigner,codeNewLine,codeHigh,codeLow;<br />pfSjis=fopen("Sjis.txt","wb");<br />if(pfSjis==NULL)<br />return -1;<br />for(i=0;i<num;i++)<br />{<br />len=0;<br />k=rand()%36;<br />for(j=0;j<k;j++)<br />{<br />code=0x8140+rand()%0x6965;<br />if(SJIS_SIGN(code))<br />{<br />if(isprint(code)&&(code&&0x00ff!=0x7f||code&&0x00ff!=0xfd||code&&0x00ff!=0xfe||code&&0x00ff!=0xff))<br />{<br />codeHigh=(code&0xff00)>>8;<br />fwrite(&codeHigh,1,1,pfSjis);<br />codeLow=code&0x00ff;<br />fwrite(&codeLow,1,1,pfSjis);<br />len=len+2;<br />if(len>34)<br />break;<br />}<br />else<br />continue;<br />}<br />}<br />codeNewLine=0x0d;<br />fwrite(&codeNewLine,1,1,pfSjis);<br />codeNewLine=0x0a;<br />fwrite(&codeNewLine,1,1,pfSjis);<br />}<br />fclose(pfSjis);<br />}<br />int CreateComFile(int num)<br />{<br />FILE* pfCom;<br />int i,j,k,len;<br />unsigned short code;<br />unsigned char codeSigner,codeNewLine,codeHigh,codeLow;<br />pfCom=fopen("combination.txt","wb");<br />if(pfCom==NULL)<br />return -1;<br />for(i=0;i<num;i++)<br />{<br />len=0;<br />k=rand()%18;<br />for(j=0;j<k;j++)<br />{<br />code=rand()%0x7d;<br />if(LAWLESS(code))<br />{<br />codeSigner=(unsigned char) code;<br />fwrite(&codeSigner,1,1,pfCom);<br />len++;<br />if(len>34)<br />break;<br />}</p><p>code=0x30+rand()%0x0a;<br />if(NUM(code))<br />{<br />codeSigner=(unsigned char) code;<br />fwrite(&codeSigner,1,1,pfCom);<br />len++;<br />if(len>34)<br />break;<br />}</p><p>code=0x41+rand()%0x3a;<br />if(LETTER(code))<br />{<br />codeSigner=(unsigned char) code;<br />fwrite(&codeSigner,1,1,pfCom);<br />len++;<br />if(len>34)<br />break;<br />}<br />code=0xa1+rand()%0x3f;<br />if(SJIS_SINGER(code))<br />{<br />codeSigner=(unsigned char) code;<br />fwrite(&codeSigner,1,1,pfCom);<br />len++;<br />if(len>34)<br />break;<br />}<br />code=0x8140+rand()%0x6965;<br />if(SJIS_SIGN(code))<br />{<br />if(isprint(code)&&(code&&0x00ff!=0x7f||code&&0x00ff!=0xfd||code&&0x00ff!=0xfe||code&&0x00ff!=0xff))<br />{<br />codeHigh=(code&0xff00)>>8;<br />fwrite(&codeHigh,1,1,pfCom);<br />codeLow=code&0x00ff;<br />fwrite(&codeLow,1,1,pfCom);<br />len=len+2;<br />if(len>34)<br />break;<br />}<br />else<br />continue;<br />}<br />}<br />codeNewLine=0x0d;<br />fwrite(&codeNewLine,1,1,pfCom);<br />codeNewLine=0x0a;<br />fwrite(&codeNewLine,1,1,pfCom);<br />}<br />fclose(pfCom);<br />}</p><p>int main(int argc, char* argv[])<br />{<br />unsigned short code,MAXCODE=0xeaa4;<br />unsigned char codeSigner,codeNewLine,codeHigh,codeLow;<br />unsigned char lawlessBuf[4],letterBuf[4],sjissingerBuf[4],sjisdoubleBuf[4];<br />unsigned short lawlessmaxcode=0x7c;<br />int len;//按位元組算<br />int i,j,k;<br />if(argc != 6)<br />{<br />printf("Parameter list: Exethe num of lawless's filenamethe num of num's filenamethe num of letter's filenamethe num of combinate filename");<br />exit(1);<br />}</p><p>srand(time(NULL));</p><p>CreateAllLawlessFile(atoi(argv[1]));<br />CreateAllNumFile(atoi(argv[2]));<br />CreateAllLetterFile(atoi(argv[3]));<br />CreateAllSJISFile(atoi(argv[4]));<br />CreateComFile(atoi(argv[5]));<br />return 0;<br />}<br />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.