程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 用C++ Builder設計實現文件切割機

用C++ Builder設計實現文件切割機

編輯:vc教程

一、程序設計原理

我們知道文件之所以能夠被分割是因為所有文件都是以二進制的形式存儲的,然後再根據文件系統的相應規定來進行讀取處理。我們基於這個原理,把所有類型的文件都以二進制進行讀寫,合並時再以二進制的格式把分割後的文件重新重新組合起來,這樣就實現了對文件的分割與合並。

二、程序設計過程及祥解

1.我們先在c++ builder 中新建一個工程,存盤並命名工程文件為fgj.bpr,命名單元文件為filefgj.h。

2.在該工程中分別加入DriveComboBox、DirectoryListBox、FilterComboBox、FileListBox1(以上幾個控件位於win3.1組件框中)再添加一個ComboBox組合框、添加三個EDIT組件、添加一個ListBox1列表框、添加5個位圖按鈕組件BitBtn、添加一個進度條ProgressBar1、添加三個文字標簽Label。各項設置如下圖

-----------------------------------------------------------------------------

-----------------------------------------------------------------------------

打開filefgj.h 頭文件,在 private: // User declarations後面添加如下變量

int FileHandle; // 文件名柄變量
int FileLength; file://源文件大小變量
int num; file://源文件被分割後的文件數目
int iBytesRead; file://
char *pszBuffer;//
int buf; // 文件緩沖區變量
int buf1;//文件緩沖區變量

雙擊FileListBox組件編寫該組件的響應事件如下:

void __fastcall TForm1::FileListBox1Change(TObject *Sender)
{
Edit1->Text=FileListBox1->FileName;
Edit3->Text=FileListBox1->FileName+'0';
buf=((ComboBox1->Text).ToInt());
buf1=buf*1024l;
FileHandle=FileOpen(Edit1->Text, fmOpenRead);
FileLength=FileSeek(FileHandle,0,2);
num=FileLength/buf1+1;
Edit4->Text="分割成"+IntToStr(num)+"個文件";
FileClose(FileHandle);
ListBox1->Items->Clear();
for (int i=1;i<=num;i++)
{
ListBox1->Items->Add(ChangeFileExt(Edit3->Text,"."+IntToStr(i)));
}
}
file://-------------------------------------------------------------

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved