アプリ(中級) | アプリ(入門) | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


ホーム > アプリ(入門) > 圧縮ソフトも作りたい [ 1 | 2 ]

圧縮ソフトも作りたい - 2/2

更新 : 2009/01/05

 


それでは上から説明していきます。

まず今後必要になる変数(
圧縮ファイル名・圧縮するファイル名・圧縮時のスイッチ類)を宣言しておきます。
次に、OpenDialog の Filter をセットします(これはプロパティで設定してもよいです)。
OpenDialog を表示してファイルが選択されなければ圧縮処理は終わりです。


    AnsiString ArchiveName, //書庫名
               CompressName,//圧縮するファイル名
               cmdLine;     //コマンド変数

    //圧縮用のフィルタを設定する。
    OpenDialog1->Filter = "すべてのファイル (*.*)|*.*";

    //ファイルが選択されなければ処理終わり    
    if (!OpenDialog1->Execute()) return;

OpenDialog1 で選択されたファイル名を CompressName に代入します。ファイルの拡張子を変えて圧縮ファイル名としています。

Unlha に渡すコマンドラインを作成します。
Unlha にコマンドラインを渡して、圧縮を実行します(コマンドラインの作成に関しては、UNLHA32.DLL 付属のドキュメントを参照してください)。

Memo1 をクリアして、Unlha を実行した結果を表示させます。


    //選択したファイル名を圧縮ファイル名として使う
    CompressName = OpenDialog1->FileName;
    ArchiveName  = ChangeFileExt(CompressName, ".lzh");//書庫名

    //コマンドライン作成(空白パスなどには未対応)
    cmdLine = "a " + ArchiveName   //書庫名
            + " "  + CompressName; //圧縮するファイル名

    //Unlha 操作
    Unlha(Application->Handle, cmdLine.c_str(), "", 0);

    //結果表示用 Memo1 をクリア
    Memo1->Lines->Clear();    
    Memo1->Lines->Add("ファイル \"" + ArchiveName +
                      "\" が作成されました。"); 

以上ですべてのコーディングが終わりました。お疲れ様でした。
コンパイルして実行してみてください。圧縮ファイルが作成できたでしょうか? 




以上のコードは、ご自由にお使いいただいて結構です。ただし、コードを使用した結果、問題が生じても責任はいっさい負いかねますのでご了承ください。



[ ホーム | ページトップ | 前へ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.