⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainunit.cpp

📁 前些日子帮某些人做的毕业设计
💻 CPP
字号:
//---------------------------------------------------------------------------
#include<iostream.h>
#include<io.h>
#include<fcntl.h>
#include<dir.h>
#include<stdio.h>

#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
unsigned __int32 GetCRC(char *SourceData,unsigned __int32 DataSize)
{
__asm   {
    mov     esi ,SourceData
    mov     ecx ,DataSize
    xor     eax ,eax

__CountCRC_Start:

    cmp     ecx ,0
    jz      __CountCRC_End

    movzx   edx ,byte ptr [esi]
    add     eax ,edx

    inc     esi
    dec     ecx

    jmp     __CountCRC_Start
__CountCRC_End:
    }

    return(_EAX);
}
//---------------------------------------------------------------------------
unsigned __int32 GetCRC(char *fn)
{
	int fp;
    unsigned __int32 fsize,crc;
    char *data;

    fp=open(fn,O_RDONLY|O_BINARY);

    fsize=filelength(fp);

    data=new char[fsize];

    read(fp,data,fsize);
    
    close(fp);

    crc=GetCRC(data,fsize);

    delete data;

    return(crc);
}
//---------------------------------------------------------------------------
unsigned __int32 Number=0;
unsigned __int8 *FileNameSize; 
char **FileName;
unsigned __int32 *CRC;
//---------------------------------------------------------------------------
void FindFile()
{
	ffblk ff;
    unsigned __int32 n=0,size;

    if(findfirst("*.TXT",&ff,NULL)==-1)return;

    while(1)
    {
    	Number++;

		if(findnext(&ff)==-1)break;
    }

    if(Number==0)return;

    FileNameSize=new unsigned __int8[Number];
    FileName=new char*[Number];
    CRC=new unsigned __int32[Number];

    if(findfirst("*.TXT",&ff,NULL)==-1)return;

    while(1)
    {
    	size=strlen(ff.ff_name)-4;
        
    	FileNameSize[n]=size;
        
        FileName[n]=new char[size+1];
        memcpy(FileName[n],ff.ff_name,size);
        FileName[n][size]=0;

        CRC[n]=GetCRC(ff.ff_name);

        n++;

		if(findnext(&ff)==-1)break;
    }
}
//---------------------------------------------------------------------------
void SaveConfig()
{
	int fp;
    unsigned __int32 i;

    fp=open("book.cfg",O_WRONLY|O_BINARY|O_TRUNC|O_CREAT);

    write(fp,&Number,4);
    write(fp,CRC,4*Number);
    write(fp,FileNameSize,Number);

    for(i=0;i<Number;i++)
    	write(fp,FileName[i],FileNameSize[i]);

    close(fp);
}
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
	cout<<"Hyz OnlineBook MAKELIST 1.0\n";
 	cout<<"Author: HuYingZhuo\n";

    FindFile();

	if(Number==0)
    {
    	cout<<"find 0 file!";
        return 0;
    }

	cout<<"find "<<Number<<" file!\n";

    SaveConfig();
    
	return 0;
}
//---------------------------------------------------------------------------
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -