• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        運(yùn)用Delphi簡單編制壓縮助理程序

        運(yùn)用Delphi簡單編制壓縮助理程序

        更新時(shí)間:2022-05-03 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

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

        二、壓縮助理程序設(shè)計(jì)的基本思路
        通過壓縮工具將要在不同計(jì)算機(jī)間交換的文件壓縮并轉(zhuǎn)換成自解壓格式,通過壓縮助理程序?qū)⒃撟越鈮喊攒洷P容量為單位分割成多個(gè)存儲(chǔ)在硬盤上的文件,這樣,通過Copy命令和一張軟盤就能夠?qū)崿F(xiàn)對大的壓縮包在不通的計(jì)算機(jī)間交換數(shù)據(jù);再利用壓縮助理程序在另一臺機(jī)器上將上述多個(gè)文件合并,成為自解壓文件格式,避免了再安裝Winzip軟件的繁瑣過程。通過壓縮助理程序,上述問題即可迎刃而解。

        三、實(shí)現(xiàn)方法
        1. 程序設(shè)計(jì)界面

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

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

        //分割文件為切片文件,自動(dòng)命名
        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;
        //單蝶容量計(jì)算為字節(jié)數(shù)
        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;

        //合并切片文件并保存合并結(jié)果
        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下調(diào)試通過。

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

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲国产成人久久精品软件| 免费一级毛片无毒不卡| 曰批视频免费30分钟成人| 亚洲国产精品VA在线观看麻豆| h视频在线观看免费| 国产成人午夜精品免费视频| 亚洲精品国产啊女成拍色拍| 久热中文字幕在线精品免费| 97久久国产亚洲精品超碰热| 暖暖在线日本免费中文| 另类专区另类专区亚洲| 久久精品国产精品亚洲| 91成人免费福利网站在线| 亚洲丁香色婷婷综合欲色啪| 99精品热线在线观看免费视频| 亚洲综合视频在线| 毛片a级三毛片免费播放| 亚洲AV无码久久| 久久精品国产免费观看| 国产成人亚洲综合一区| 国产成人青青热久免费精品| h片在线观看免费| 91亚洲va在线天线va天堂va国产 | 成人一级免费视频| 色噜噜AV亚洲色一区二区| 69视频在线观看免费| 亚洲人成色777777精品| 国产成人亚洲综合无码| 久久久久久毛片免费播放 | 黄人成a动漫片免费网站| 亚洲av永久无码精品表情包| 香蕉97超级碰碰碰免费公| 爱情岛论坛亚洲品质自拍视频网站| 在线看无码的免费网站| 亚洲另类无码一区二区三区| 亚洲综合最新无码专区| 182tv免费观看在线视频| 国产午夜亚洲精品不卡免下载| 亚洲色爱图小说专区| 成全影视免费观看大全二| a一级毛片免费高清在线|