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

📄 splitthread.cpp

📁 本人看了徐景州的分割文件后觉得这确实是一个简单的思路,但是要把他编得更加完美却较难有句话:小事不做何以做大事,编一百个软件不如编好一个软件.本人的分割文件思想是把要分割的文件一次读入内存求的分割的数目
💻 CPP
字号:

///////////////////////////////////////////////////////
//
//  Name:   SplitFile
//  date:   24/03/2005
//  module:  main
//  author:  晏丹强
///////////////////////////////////////////////////////
#include<windows.h>
#include"resource.h"
#pragma comment(lib,"comctl32.lib")
/////////////////对话框消息处理涵数
int CALLBACK jiondlg(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam);
int CALLBACK splitdlg(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam);

char filepath[256];//////分割的文件路径
char save[256];
LPTSTR savepath;
LPTSTR lpfile;
BYTE *lpdata,*data,*filedata[256];

/////////////////////////核心涵数头文件
#include"tool.h"



void DoPropertySheet(HINSTANCE hinst)
{
	PROPSHEETPAGE psp[2];
    PROPSHEETHEADER psh;

    psp[1].dwSize = sizeof(PROPSHEETPAGE);
    psp[1].dwFlags = PSP_USEICONID | PSP_USETITLE;
		
    psp[1].hInstance =hinst;
    psp[1].pszTemplate = (LPCTSTR)ID_JION;
    psp[1].pszIcon = MAKEINTRESOURCE(IDI_ICON1);
    psp[1].pfnDlgProc = (DLGPROC)jiondlg;
    psp[1].pszTitle = "合并";
    psp[1].lParam =0;
    psp[1].pfnCallback = NULL;

    psp[0].dwSize = sizeof(PROPSHEETPAGE);
    psp[0].dwFlags = PSP_USEICONID | PSP_USETITLE|PSP_HASHELP;
    psp[0].hInstance =hinst;
    psp[0].pszTemplate = (LPCTSTR)ID_SPLIT;
    psp[0].pszIcon = (LPCTSTR)IDI_ICON2;
    psp[0].pfnDlgProc =(DLGPROC)splitdlg;
    psp[0].pszTitle = "分割";
    psp[0].lParam = 0;
    psp[0].pfnCallback = NULL;

    psh.dwSize = sizeof(PROPSHEETHEADER);
    psh.dwFlags = PSH_USEICONID | PSH_PROPSHEETPAGE;
    psh.hwndParent =NULL;
    psh.hInstance = hinst;
    psh.pszIcon = MAKEINTRESOURCE(IDI_ICON3);
    psh.pszCaption = (LPSTR)"split";
    psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
    psh.nStartPage = 0;
    psh.ppsp = (LPCPROPSHEETPAGE) &psp;
    psh.pfnCallback =0;

    PropertySheet(&psh);
    

}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hpre,LPSTR lpcmd,int show)
{
	HWND hwnd=NULL;
	MSG message;
	
    DoPropertySheet(hInstance);
	
	
	while(GetMessage(&message,0,0,0))
	{
	if ( !IsDialogMessage(hwnd,&message ) )

		TranslateMessage(&message);
		DispatchMessage(&message);
	}

	return message.wParam ;
}


int CALLBACK jiondlg(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
	char path[256];
	char savepath[256];
	int num=0;
	static LPTSTR lpfile=path;
	static LPTSTR savename=savepath;
	HWND exit;
	switch(msg)
	{
	case WM_INITDIALOG:
		exit=GetDlgItem(hwnd,ID_EXIT);
		SetFocus(exit);
		return 0;
	case WM_COMMAND:
		switch(LOWORD(wparam))
		{
		case ID_EXIT:
			PostQuitMessage(0);
			return 0;
		case ID_OPEN:
			 lpfile=OpenFindFile(hwnd,FALSE);
	         SetDlgItemText(hwnd,ID_OPENEDIT,lpfile);
			break;
		case ID_SAVE:
           savename=DoOpenDir(hwnd);
		   SetDlgItemText(hwnd,ID_SAVEEDIT,(LPTSTR)savename);
			break;
		case ID_JOIN:///合并文件按钮消息
			Join(lpfile,savename);
			break;

		
		}
		return 0;
	}
	return 0;
}

int CALLBACK splitdlg(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
	static HWND hdlg;
	int bytes=1;
	
	switch(msg)
	{
	case WM_INITDIALOG:
	   SetDlgItemInt(hwnd,ID_SPLITBYTE,bytes,TRUE);
	   lpfile=filepath;
	   savepath=save;
	     return 0;
	
	case WM_COMMAND:
		switch(LOWORD(wparam))
		{
		case IDOK:
			PostQuitMessage(0);
			return 0;
		case ID_SELECT:
            lpfile=OpenFindFile(hwnd,TRUE);
		     SetDlgItemText(hwnd,IDS_FILEPATH,lpfile);
		   break;
		case ID_SAVE:
			savepath=DoOpenDir(hwnd);
			SetDlgItemText(hwnd,ID_SAVESPLIT,(LPTSTR)savepath);
			break;
		case ID_SPLIT://///分割文件按钮消息
            bytes=GetDlgItemInt(hwnd,ID_SPLITBYTE,FALSE,TRUE);
			bytes*=(1024*1024);
			Split(lpfile,savepath,bytes);
			break;
		
			
		}
		return 0;
	}
	return 0;
}
/////////////end////

⌨️ 快捷键说明

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