📄 文件分割.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<p align="center"><b>文件分割<br>
</b><br>
作者:<A href="mailto:yourname@sohu.com">晏丹强</a></p>
<p>一、正文不用加任何修饰,字体使用“宋体/3 (12 磅)”即
本人看了徐景州的分割文件后觉得这确实是一个简单的思路但是要把他编得
更加完美却较难有句话:小事不做何以做大事编一百个软件不如编好一个软件
本人的分割文件思想是把要分割的文件一次读入内存求的分割的数目
然后分别写入文件接着写入文件信息以便合并使用不过该软件有个缺点:
他用的是属性页对话框写的框架我还不知道怎么修改他自带的退出按钮
不能点对话框的下面的退出按钮.请各位前辈指教
<br>
<br>
<A href="ydq.rar">下载源代码</a>
<br>
<br>
二、代码说明
<pre>
#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////
<br></pre>
<br>欢迎各位QQ 120011928
<br>Email skyydq@163.com
<P></P>
</td>
</tr>
</table></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -