日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

運用Delphi簡單編制壓縮助理程序

運用Delphi簡單編制壓縮助理程序

更新時間:2022-05-03 文章作者:未知 信息來源:網絡 閱讀次數:

一、問題的提出
Winzip是電腦使用過程中,備份和數據交換的常用工具之一。然而,在實際使用過程中,筆者發現Winzip在用來進行數據交換操作時有一些不盡人意的地方, 如:
1. 當將一個大的壓縮包分卷壓縮到軟盤上時,操作者手頭必須有多張軟盤才能完成數據包的轉存,這種情況如果發生在手頭只有一張軟盤的情況下,可真的沒辦法。
2. 如果分卷存儲數據軟盤中的某張軟盤在寫入或讀出數據時發生錯誤,則上一過程必須重做
3. 要在其它機器上讀出軟盤上的數據,則該機器也必須要求安裝了Winzip。
那么,有沒有好的解決辦法,避免上述容易出錯和煩瑣安裝軟件的過程呢?因此,筆者用Delphi5.0編制了壓縮助理程序,以為數據交換提供一種輔助方法和手段。

二、壓縮助理程序設計的基本思路
通過壓縮工具將要在不同計算機間交換的文件壓縮并轉換成自解壓格式,通過壓縮助理程序將該自解壓包以軟盤容量為單位分割成多個存儲在硬盤上的文件,這樣,通過Copy命令和一張軟盤就能夠實現對大的壓縮包在不通的計算機間交換數據;再利用壓縮助理程序在另一臺機器上將上述多個文件合并,成為自解壓文件格式,避免了再安裝Winzip軟件的繁瑣過程。通過壓縮助理程序,上述問題即可迎刃而解。

三、實現方法
1. 程序設計界面

2. 控件屬性設置
Form1的BorderStyle=bsDialog;兩個OpenDialog控件名稱分別設置為OpenDlg, OpenDlg1;設置OpenDlg1的Options屬性中的ofAllowMultiSelect=True,Filter屬性設置為Split File(*.spt)|*.spt|All File(*.*)|*.*;SaveDialog的名稱為SaveDlg;SpinEdit1的Value=1440,MinValue=1440,MaxValue=1600, Increment=1;在“合并”按鈕左邊的控件是ListBox,名稱ListBox1,ListBox1的Sorted=True;其它控件:一個TImage控件,2個Tedit和5個Tbutton,其屬性從略。
3. 壓縮助理程序的實現
從上到下五個命令按鈕的代碼依次如下:
//選擇待分割的文件
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDlg.Execute then
begin
Edit1.Text := OpenDlg.FileName;
end;
end;

//設置分割后的切片文件的存儲位置
//SelectDirectory函數聲明在FileCtrl單元中
procedure TForm1.Button2Click(Sender: TObject);
var
Dir: string;
begin
if SelectDirectory('選擇存儲目錄:', '', Dir) then
begin
Edit2.Text := Dir + '\';
end;
end;

//分割文件為切片文件,自動命名
procedure TForm1.Button3Click(Sender: TObject);
var
I, K, Rest, Len: Integer;
AF, BF: TFileStream; //文件流對象
Fn: string; //文件名
Buf : Integer; //單碟容量
begin
if (Edit1.Text = '') or (Edit2.Text = '') then
begin
Beep;
Exit;
end;
//單蝶容量計算為字節數
buf := SpinEdit1.Value * 1024;
I := 1;
try
Af := TFileStream.Create(Edit1.Text, fmOpenRead);
K := Af.Size div Buf;
Rest := Af.Size - K * Buf;
For I := 1 to K do
begin
Fn := Edit2.Text + IntToStr(I) + '.spt'; //文件名
Bf := TFileStream.Create(Fn, fmCreate);
Bf.CopyFrom(Af, Buf);
Bf.Free;
end;
if Rest > 0 then
begin
Fn := Edit2.Text + IntToStr(I) + '.spt';
Bf := TFileStream.Create(Fn, fmCreate);
Bf.CopyFrom(Af, Rest);
Bf.Free;
end;
finally
AF.Free;
end;
end;

//將分割后的切片文件裝入到ListBox1中
procedure TForm1.Button4Click(Sender: TObject);
var
I : Integer;
begin
if OpenDlg1.Execute then
For I := 0 to OpenDlg1.Files.Count - 1 do
ListBox1.Items.Add(OpenDlg1.files[I]);
end;

//合并切片文件并保存合并結果
procedure TForm1.Button5Click(Sender: TObject);
var
Af, Bf: TFileStream; //文件流對象
Fn, Ft: string; //文件名
I : Integer;
begin
if ListBox1.Items.Count = 0 then
begin
Beep;
Exit;
end;
if SaveDlg.Execute then
begin
Fn := SaveDlg.FileName;
try
Af := TFileStream.Create(Fn, fmCreate);
For I := 0 to ListBox1.Items.Count -1 do
begin
Ft := ListBox1.Items[I];
Bf := TFileStream.Create(Ft, fmOpenRead);
Af.CopyFrom(Bf, Bf.Size);
Bf.Free;
end;
finally
Af.Free;
end;
end;
end;
上述代碼在Windows98,Delphi5.0下調試通過。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 免费人成在线蜜桃视频 | 在线a人片天堂免费观看高清 | 色老头久久久久久久久久 | 亚洲乱码国产一区网址 | 午夜在线网址 | 91欧美一区二区三区综合在线 | 精品福利视频在线观看视频 | 国产主播精品在线 | 欧美一级特黄刺激大片视频 | 久久这里精品青草免费 | 国产精品福利久久久久久小说 | 在线观看亚洲免费 | 天天插天天透 | 曰本免费视频 | 在线国产中文字幕 | 波多野结衣国产一区 | 人与禽交视频免费观看 | 国产95在线 | 亚洲 | 18禁片一级毛片视频播放免费看 | 国产亚洲一区二区三区不卡 | 亚洲伦理精品久久 | www.日韩精品 | 秋霞鲁丝片免费观观看 | 欧美一级毛片高清免费观看 | 亚洲欧美久久婷婷爱综合一区天堂 | 成人欧美一区在线视频在线观看 | 精品国产一二三区在线影院 | 国产午夜精品免费一二区 | 99超级碰碰成人香蕉网 | 日本精品一区二区在线播放 | 伊人久久大香线蕉综合网站 | 久久爱伊人 | 狠狠色丁香婷婷第六色孕妇 | 国产精品久久久久影视青草 | 亚洲视频在线观看免费视频 | 青青久热 | 久久久久久久性潮 | 日本在线观看中文 | 午夜寂寞影院在线观看 | 国产精品久久久亚洲第一牛牛 | 国产综合在线视频 |