亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? filesplit.cpp

?? 一個功能挺多的
?? CPP
字號:
// FileSplit.cpp : implementation file
//
//Modify by 徐景周 ,2001.2.13
//功能:文件分割為多種格式的大小,并將其合并在一起
//
#include "stdafx.h"
#include "scrgenius.h"
#include "FileSplit.h"
#include "DirDialog.h" //目錄瀏覽對話框
#include "AnimEffect.h" //對話框動畫效果顯示

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFileSplit dialog


CFileSplit::CFileSplit(CWnd* pParent /*=NULL*/)
	: CDialog(CFileSplit::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFileSplit)
	m_parts = _T("狀態顯示");
	m_path = _T("");
	m_targetpath = _T("");
	m_split = TRUE;
	//}}AFX_DATA_INIT
}


void CFileSplit::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFileSplit)
	DDX_Control(pDX, IDC_COMBOX_FILESIZE, m_FileSize);
	DDX_Control(pDX, IDC_PROGRESS, pProgress);
	DDX_Control(pDX, IDC_BUTTON_MERGE, m_buttMerge);
	DDX_Control(pDX, IDCANCEL, m_buttExit);
	DDX_Control(pDX, IDOK, m_buttSplit);
	DDX_Control(pDX, IDC_BROWSE, m_Browse);
	DDX_Control(pDX, IDC_BROWSE2, m_Browse2);
	DDX_Control(pDX, IDC_RADIO3, m_RadioSplit);
	DDX_Control(pDX, IDC_PATH, m_edit);
	DDX_Text(pDX, IDC_PARTS, m_parts);
	DDX_Text(pDX, IDC_PATH, m_path);
	DDX_Text(pDX, IDC_PATH2, m_targetpath);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFileSplit, CDialog)
	//{{AFX_MSG_MAP(CFileSplit)
	ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
	ON_BN_CLICKED(IDC_BROWSE2, OnBrowse2)
	ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
	ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
	ON_BN_CLICKED(IDOK, OnOk)
	ON_BN_CLICKED(IDC_BUTTON_MERGE, OnButtonMerge)
	ON_WM_SHOWWINDOW()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFileSplit message handlers

BOOL CFileSplit::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	if (m_split) 
		m_RadioSplit.SetCheck(1);

	CButton *pButtonMerge = (CButton*)(GetDlgItem(IDC_BUTTON_MERGE));
	pButtonMerge->EnableWindow(FALSE);

	m_path =_T("");
	m_filename =_T("");

	//在此初始化漸變色進度條
	pProgress.SetRange32(1,500);
    pProgress.SetBkColor(RGB(240,200,90));
	pProgress.ShowPercent(true);	
	pProgress.SetPos(500);

	//設置選擇文件大小扁平下拉組合框默認初值為第1個
	m_FileSize.SetCurSel(0);

	//在此將文件瀏覽兩按鈕設為平面狀,顏色和自定義窗體色相同
	m_Browse.SubclassDlgItem(IDC_DIRBROWSER, this);
	m_Browse.SetActiveBgColor(RGB(240,200,90));
	m_Browse.SetInactiveBgColor(RGB(240,200,90));
	m_Browse.SetTooltipText(IDS_TOOLTIP_BROWER);
	m_Browse.SetIcon(IDI_FILEOPEN);
//	m_Browse.SetFlat(FALSE); //不扁平顯示
	m_Browse.SetBtnCursor(IDC_HAND); 

	m_Browse2.SubclassDlgItem(IDC_FILEBROWSER, this);
	m_Browse2.SetActiveBgColor(RGB(240,200,90));
	m_Browse2.SetInactiveBgColor(RGB(240,200,90));
	m_Browse2.SetTooltipText(IDS_TOOLTIP_BROWER);
	m_Browse2.SetIcon(IDI_FILEOPEN);
//	m_Browse2.SetFlat(FALSE); //不扁平顯示
	m_Browse2.SetBtnCursor(IDC_HAND);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

//選擇待分割或合并的源文件
void CFileSplit::OnBrowse() 
{
	//設置分割文件時對話框中顯示的文件擴展名
	static char BASED_CODE szSplitFilter[] = _T("待分割文件(*.*)|*.*||");
	//設置合并文件時對話框中顯示的文件擴展名
	static char BASED_CODE szMergeFilter[] = _T("待合并文件(1_*.*)|1_*.*||");

	CString filter;
	if (!m_split)
		filter = szMergeFilter;
	else 
		filter = szSplitFilter;

	CFileDialog dlg(TRUE,
					NULL, 
					NULL, 
					OFN_HIDEREADONLY	| 
					OFN_OVERWRITEPROMPT | 
					OFN_FILEMUSTEXIST,
					filter,
					0);

	//獲取源文件名及路徑
	if (dlg.DoModal() == IDOK) {
		m_path = dlg.GetPathName();
		m_filename = dlg.GetFileName();
		UpdateData(FALSE);
	}
	
}

//選擇目標文件夾
void CFileSplit::OnBrowse2() 
{
   CDirDialog	dlg;

	if (dlg.DoBrowse(this) == IDOK) {
		//獲取目標路徑
		m_targetpath = dlg.m_strPath;
		UpdateData(FALSE);
	}	
	
}

//獲取用戶選擇文件的分割大小
UINT  CFileSplit::GetSplitFileSize()
{
  
    switch(m_FileSize.GetCurSel())
	{
	case 0:
		return 1400000;
    case 1:
		return 1200000;
    case 2:
		return 1000000;
	case 3:
		return 800000;
	default:
		return 1400000;
	}
	
}

// 文件合并涵數 
int CFileSplit::MergeMe() 
{
	CWaitCursor wait;
	CFile destFile;
	CFileException ex;

	BYTE buffer[140000];
	DWORD dwRead;
	UINT nCount = 140000;
	UINT newlen = 1400000;
	char buff [20];
	long l = 1;
	CString name;
	CString pref;
	CString newpath;
		
	UpdateData(TRUE);

	//判斷文件是否存在
	if (!m_path.IsEmpty()) {
		if (!m_SourceFile.Open(m_path, CFile::modeRead | CFile::shareDenyNone | CFile::typeBinary, &ex)) {
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
      		::AfxMessageBox(szError);
			m_edit.SetFocus();
			m_edit.SetSel(0, -1);
			return 1;
		}
		//獲取文件名
		m_filename = m_path.Right((m_path.GetLength() - m_path.ReverseFind('\\')) - 1);
		//關閉源文件
		m_SourceFile.Close();
	}

	//獲取路徑名
	newpath = m_path.Left(m_path.GetLength() - m_filename.GetLength());

	if (!m_targetpath.IsEmpty()) {
		//判斷合并文件名是否正確
		if (!m_filename.IsEmpty() && m_filename.Left(2) != _T("1_")) {
			::AfxMessageBox(_T("待合并的源文件名不對..."), MB_ICONERROR);
			return 1;
		}
		else if(m_filename.IsEmpty()) {
			MessageBox(_T("請選擇待合并的源文件."), _T("文件分割器"), MB_ICONEXCLAMATION);
			return 1;
		}
		//獲取新的文件名
		m_filename = m_filename.Right(m_filename.GetLength() - 2);
		//判斷選擇目錄未尾是否已有"\"符
		if(m_targetpath.Right(1)=='\\')
		    m_path = m_targetpath + m_filename;
		else
			m_path = m_targetpath + _T("\\") + m_filename;
		//建立目標文件
		if (!destFile.Open(m_path,  
			CFile::modeWrite		| 
			CFile::shareExclusive	| 
			CFile::typeBinary		| 
			CFile::modeCreate, &ex)) {
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
			::AfxMessageBox(szError);
			return 0;
		}
	}
	else if(m_path.IsEmpty())
	{//源文件選擇為空
		MessageBox(_T("請選擇待合并的源文件."), _T("文件分割器"), MB_ICONEXCLAMATION);
		return 1;
	}
	if (m_targetpath.IsEmpty()) {//目標文件選擇為空
		MessageBox(_T("請選擇合并后要保存到的目標文件夾."), _T("文件分割器"), MB_ICONEXCLAMATION);
		return 1;
	}
	//開始合并
	do {
		//通過動態增加的數字變量來得到分割文件名,并打開它
		pref = _ltoa(l, buff, 10);
		pref += _T("_");
		if (!m_SourceFile.Open(newpath + pref + m_filename,  
			CFile::modeRead		| 
			CFile::shareExclusive	| 
			CFile::typeBinary, &ex)) {
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
			destFile.Close();
			m_path = _T("");
			m_filename = _T("");
//			pProgress.SetPos(0);
			newpath = _T("");
//			m_parts = _T("");
			UpdateData(FALSE);

			return 0;
		}
		else
			//產生一個新名
			name = _T(newpath + pref + m_filename);
		do  {//寫到目標文件中
			dwRead = m_SourceFile.Read(buffer, nCount);
			destFile.Write(buffer, dwRead);
		}while (dwRead > 0);

		m_SourceFile.Close();

		// 設置進度條范圍為0到500.
		pProgress.SetRange(0, 500);
		// 設置進度條移動位置
		for (int i = 0; i < 500; i++)
			pProgress.SetPos(i);
		m_parts = _ltoa(l, buff, 10);
		m_parts += _T("個文件已合并");
		UpdateData(FALSE);
		l++;
		UpdateWindow();
	}while (l < 500);
		
	return 0;
}

//文件分割涵數
int CFileSplit::SplitMe() 
{
	CWaitCursor wait;
	// 目標文件
	CFile destFile;
	// 文件出錯的信息變量
	CFileException ex;

	DWORD dwRead;
	UINT newlen;
	char buff [20];
	char b [20];
	long l = 1;
	CString name;
	UINT len = 0;
//	CGradientProgressCtrl *pProgress = (CProgressCtrl*) GetDlgItem(IDC_PROGRESS);

	UpdateData(TRUE);

	//獲取文件分割后的大小,定義相對應變量數值
    newlen=GetSplitFileSize();
	UINT nCount = newlen/10;
    BYTE buffer[140000];

	//判斷是否已選擇源文件及是否能打開,并得不到文件大小
	if (!m_path.IsEmpty()) {
		if (!m_SourceFile.Open(m_path, CFile::modeRead | CFile::shareDenyNone | CFile::typeBinary, &ex)) {
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
      		::AfxMessageBox(szError);
			m_edit.SetFocus();
			m_edit.SetSel(0, -1);
			return 1;
		}
		len = m_SourceFile.GetLength();
	}
	else {
		MessageBox(_T("請選擇待分割的源文件."), _T("文件分割器"), MB_ICONEXCLAMATION);
		return 1;
	}
	if (m_targetpath.IsEmpty()) {
		MessageBox(_T("請選擇分割后保存到的目標文件夾."), _T("文件分割器"), MB_ICONEXCLAMATION);
		return 1;
	}
	//判斷源文件大小是否夠分割的大小
	if (len < newlen) {
		CString length = _itoa(len, b, 10);
		MessageBox(_T("文件長度為 " + length + " 字節,不夠指定的分割大小, 沒有必要再進行分割."), _T("文件分割器"), MB_ICONEXCLAMATION);
		m_SourceFile.Close();
		m_path = _T("");
		m_filename = _T("");
		UpdateData(FALSE);
		return 1;
	}

	//開始分割
	do {
		//動態改變分割后的保存文件名
		name = _ltoa(l, buff, 10);
		name += _T("_");
		CString newpath; 

		//判斷選擇目錄未尾是否已有"\"符
		if(m_targetpath.Right(1)=='\\')
			newpath = m_targetpath;
		else
			newpath = m_targetpath + _T("\\");
		if (!destFile.Open(newpath + name + m_SourceFile.GetFileName(),  
			CFile::modeWrite		| 
			CFile::shareExclusive	| 
			CFile::typeBinary		|
			CFile::modeCreate, &ex)) {
			TCHAR szError[1024];
			ex.GetErrorMessage(szError, 1024);
			::AfxMessageBox(szError);
			m_SourceFile.Close();
			return 1;
		}
		do {
			dwRead = m_SourceFile.Read(buffer, nCount);
			destFile.Write(buffer, dwRead);
		}//當大小小于指定分割大小時繼續 
		while (dwRead > 0 && destFile.GetLength() < newlen); 
		destFile.Close();
		// 設置進度條范圍
		pProgress.SetRange(0, len /newlen*10);
		// 設置進度條移動位置
		pProgress.SetPos(l);
		m_parts = _ltoa(l , buff, 10);
		m_parts += _T("個文件生成");
		UpdateData(FALSE);
		l++;
		UpdateWindow();
	}
	while (dwRead > 0);
		// 關閉源文件
		m_SourceFile.Close();

	m_path = _T("");
	m_filename = _T("");
	pProgress.SetPos(len /newlen*10);
//	m_parts = _T("");
	UpdateData(FALSE);

	return 0;
}

//開始分割文件
void CFileSplit::OnOk() 
{
	 //分割文件
	int error = SplitMe();

	//判斷結果是否成功
	if (!error) 
		MessageBox(_T("文件已被成功分割!"), _T("文件分割器"), MB_ICONEXCLAMATION);
		
	
}

//開始合并文件
void CFileSplit::OnButtonMerge() 
{
	//合并文件
	int error = MergeMe();

	//判斷結果是否成功
	if (!error) 
		MessageBox(_T("文件合并成功!"), _T("文件分割器"), MB_ICONEXCLAMATION);
	
	
}

//選中文件合并單選框
void CFileSplit::OnRadio4() 
{
  	CButton *pButtonMerge = (CButton*)(GetDlgItem(IDC_BUTTON_MERGE));
	CButton *pButtonSplit = (CButton*)(GetDlgItem(IDOK));
	
	//當選擇合并文件時,置選擇文件大小的下位框為無效狀態
	m_FileSize.EnableWindow(false); 
	//設置其它按鈕的狀態,激活合并按鈕,掛起分割按鈕
	pButtonSplit->EnableWindow(FALSE);
	pButtonMerge->EnableWindow(TRUE);
	m_split = FALSE;
	m_path = _T("");
	UpdateData(FALSE);	
}

//選中文件分割單選框
void CFileSplit::OnRadio3() 
{
	CButton *pButtonMerge = (CButton*)(GetDlgItem(IDC_BUTTON_MERGE));
	CButton *pButtonSplit = (CButton*)(GetDlgItem(IDOK));
	
	//當選擇分割文件時,恢復選擇文件大小的下位框為有效狀態
	m_FileSize.EnableWindow(true); 
	//設置其它按鈕的狀態,激活分割按鈕,掛起合并按鈕
	pButtonSplit->EnableWindow(TRUE);
	pButtonMerge->EnableWindow(FALSE);
	m_split = TRUE;
	m_path = _T("");
	UpdateData(FALSE);	
}

BOOL CFileSplit::DestroyWindow() 
{
   CRect rc0;  //對話框動畫顯示效果
   AnimEffect anim0;

	//在此加入對話框動畫關閉效果
	GetWindowRect(rc0);
	rc0.DeflateRect(2,2);//動態方框顯示
    anim0.DrawWireRects(rc0, CRect(rc0.CenterPoint().x-10,rc0.CenterPoint().y-10,rc0.CenterPoint().x+10,rc0.CenterPoint().y+10 ), 10);
//	anim0.Close(rc0); ////對話框動畫效果顯示關閉
//	Sleep(50); //延緩50毫秒后關閉
	
	return CDialog::DestroyWindow();
}

void CFileSplit::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
   CRect rc0;  //對話框動畫顯示效果
   AnimEffect anim0;

	//在此加入對話框動畫打開效果
	GetWindowRect(rc0 );
    anim0.Open( rc0 ); //對話框動畫效果顯示打開	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久三级| 国产在线看一区| k8久久久一区二区三区| 久久久久久久久97黄色工厂| 在线播放国产精品二区一二区四区| 97久久超碰国产精品| 欧美三级视频在线观看| 精品99一区二区| 久久精品免费在线观看| 亚洲天堂精品视频| 偷拍日韩校园综合在线| 懂色av一区二区夜夜嗨| 久久99久久精品| 中文字幕人成不卡一区| 欧美一区二区网站| 91.com视频| av一二三不卡影片| 国产99久久久精品| 国产iv一区二区三区| 日韩制服丝袜先锋影音| 全部av―极品视觉盛宴亚洲| 夜夜爽夜夜爽精品视频| 国产精品久久久久影院| 国产精品久久久久久久久果冻传媒| 在线一区二区观看| 成人午夜视频在线观看| 99re视频精品| 欧美国产成人在线| 国产精品888| 免费精品视频在线| 免费av成人在线| 奇米影视在线99精品| 久久99精品国产麻豆婷婷洗澡| 日韩av一级片| av在线不卡免费看| 亚洲欧洲韩国日本视频| 日本久久精品电影| 亚洲免费在线观看| 94-欧美-setu| 亚洲黄色性网站| 欧美写真视频网站| 美女视频黄频大全不卡视频在线播放| 韩国三级电影一区二区| 国产在线精品一区二区三区不卡| 日产精品久久久久久久性色| 国产激情视频一区二区三区欧美| 91免费观看在线| 在线观看欧美黄色| 久久久不卡网国产精品一区| 在线视频欧美区| 欧美人与禽zozo性伦| 精品国产亚洲一区二区三区在线观看| 99久久精品国产网站| 国产麻豆精品一区二区| 国产清纯在线一区二区www| 最新久久zyz资源站| 精品国产一区二区三区四区四| 不卡一区二区中文字幕| 色伊人久久综合中文字幕| 国产在线一区二区| 色婷婷av一区二区三区软件| 国产成人亚洲综合色影视| 看电影不卡的网站| 国产精品久久久久一区二区三区 | 精品国内二区三区| 亚洲视频免费在线| 久久先锋资源网| 欧美精品一区二区三区蜜臀 | 亚洲gay无套男同| 91福利资源站| 一区二区在线观看不卡| 欧美日韩中文精品| 久久97超碰色| 亚洲精品一区二区三区蜜桃下载| 一区二区三区四区亚洲| 国产精品盗摄一区二区三区| 午夜久久久影院| 国产真实乱偷精品视频免| 成人综合婷婷国产精品久久免费| 色诱亚洲精品久久久久久| 日韩一级成人av| 午夜日韩在线电影| 国产乱对白刺激视频不卡| ...av二区三区久久精品| 亚洲成人激情综合网| 午夜精品久久久久久久99水蜜桃 | 久久成人免费电影| 不卡欧美aaaaa| 欧美挠脚心视频网站| 一区二区三区四区不卡视频| 日韩精品自拍偷拍| 中文字幕亚洲区| 91精品国产综合久久香蕉麻豆| 国产a精品视频| 国内精品国产成人国产三级粉色 | 成人在线一区二区三区| 人禽交欧美网站| 亚洲图片激情小说| 精品国产区一区| 成人av在线电影| 亚洲自拍偷拍网站| 欧美区视频在线观看| 日本一区中文字幕| 91看片淫黄大片一级| 亚洲一区二区三区视频在线 | 日韩电影免费在线看| 日韩三级在线免费观看| 国产拍揄自揄精品视频麻豆| 欧美日韩中文国产| caoporen国产精品视频| 久久精品国产精品亚洲精品| 麻豆精品国产传媒mv男同| 日本一区二区高清| 日韩欧美高清dvd碟片| 99热国产精品| 国产一区二区伦理| 国产99久久久国产精品潘金网站| 久久精品国产一区二区三区免费看| 日韩欧美亚洲一区二区| 国产精品18久久久久久久网站| 亚洲日本va午夜在线电影| 日韩午夜精品视频| 亚洲精品在线网站| 国产在线精品免费av| 91蜜桃免费观看视频| 欧美日韩精品高清| 久久综合久色欧美综合狠狠| 亚洲视频一区二区在线观看| 日韩和的一区二区| 国产不卡在线视频| 欧美综合亚洲图片综合区| 国产精品私人自拍| 国产精品99久久久久久久女警| caoporn国产一区二区| 精品入口麻豆88视频| 久久久电影一区二区三区| voyeur盗摄精品| 欧美久久一二区| 欧美天堂一区二区三区| 日韩一二在线观看| 欧美激情综合五月色丁香小说| 91精彩视频在线观看| 一本色道亚洲精品aⅴ| 92国产精品观看| 欧美日本一道本在线视频| 精品少妇一区二区三区免费观看 | 欧美精品一区二区久久久| 欧美午夜精品一区二区蜜桃| 国产99久久久久久免费看农村| 免费观看久久久4p| 国产精品中文字幕欧美| 蜜桃av一区二区| 精品一区二区在线免费观看| 成人动漫在线一区| 国产一区二区不卡在线| 不卡的av电影| 一本大道av一区二区在线播放| 欧美性色黄大片| 精品久久一区二区三区| 成人午夜精品一区二区三区| 91在线视频播放地址| 国产精品色噜噜| 毛片av一区二区| 青青国产91久久久久久| 亚洲自拍另类综合| 免费xxxx性欧美18vr| 99综合影院在线| 国产精品久久久久久久久图文区 | 18成人在线观看| 91在线国产福利| 亚洲一区视频在线观看视频| 9191久久久久久久久久久| 激情欧美一区二区三区在线观看| 中文字幕视频一区二区三区久| 91黄色激情网站| 青娱乐精品视频| 久久精品人人做| 欧美三级日韩三级| 久久99精品国产麻豆婷婷洗澡| 69堂亚洲精品首页| 亚洲国产精品综合小说图片区| 色综合久久综合网欧美综合网| 一区二区三区日韩精品| 99在线热播精品免费| 亚洲欧美国产三级| 欧美色区777第一页| 国产精品免费视频观看| 成人免费视频国产在线观看| 7777精品伊人久久久大香线蕉最新版| 水野朝阳av一区二区三区| 欧美一级一区二区| 亚洲电影在线播放| 欧美天堂亚洲电影院在线播放| 91麻豆精品91久久久久久清纯| 国产精品嫩草久久久久| 精品一区二区三区视频| 欧美性色黄大片手机版| 国产精品久久久久7777按摩 | 7777精品伊人久久久大香线蕉| 亚洲人xxxx|