日曜日にBCB!



Do It Yourselfでひとつプログラムでも作ってみませんか。


第1話 寿印のファイル分割アクセサリ

仕事柄大きなサイズのファイルを頻繁に使います。パソコン間のコピー等はほとんどがネットワーク経由で済むのですが、時折ネットワークに繋がっていないパソコンにファイルを移す作業が発生します。これまではNiftyやVector、窓の杜に公開されているファイル分割のフリーソフトをいくつか使っていたのですが、どうも使い心地が良くない。決してソフトが悪いのではないのです。私がわがままなのです。それにファイル分割プログラムも沢山あって、どれが使いやすいのか試すだけでも労力が要ります。

寿印のファイル分割アクセサリ ファイル分割とはフロッピーディスクに入らない大きなファイルを分割して、それぞれをばらばらにコピーし、コピー先で再度結合する作業です。数値解析データ、画像データ、圧縮ファイル、大きくなると10メガを超えることもあります。さすがに50メガにもなるとCD-R焼き経由に逃げることもありますが。また、インターネットメールを使っているとサーバーの関係で1メールにつき最大1メガの制限がかかる場合もあります。こんな時ファイル分割ソフトが役に立ちます。

f 基本的にファイル分割ソフトが行うことは、ファイルの分割です。ソフトによっては分割したファイルの結合もやってくれます。結合機能がなくてもMS-DOSバッチファイルで結合もできます。これまで使ったソフトで不便だったのが、

  1. 分割空き容量チェックが正しく行えず、ディスク空き容量が2ギガ以上あるのに「容量が足りません」とメッセージが出て分割できなかったソフト。
  2. 分割ファイルの他にもいくつかファイルを作ってしまうソフト。
  3. いろいろな機能がありすぎて、私の頭をオーバーフローさせたソフト。
もっとシンプルにファイルを分割して、結合バッチを作成するだけのソフトが欲しくなりました。探すのも面倒になってきたので自作しよう、と開発に着手したわけです。

私が欲しいアクセサリは、
  1. 操作がシンプル。最短で分割元ファイルを開いて実行の2ステップ動作で完了するもの。
  2. 分割サイズが2HDおよび2DDディスケットから選択できるもの。
  3. 分割先が変更できるもの。
  4. 2ギガ以上の空き容量でも正しくチェックできるもの。
  5. 結合バッチファイルを自動生成するもの。
です。最低限これだけのことができることを目指してプログラムを作ってみましょう。名づけて寿印のファイル分割アクセサリ


まずは開発の道具が必要です。私が使っている道具を紹介しましょう。

  1. パソコン
    愛機 Let's note CF-S21J8 Let's note CF-S21J8
    メインマシンはB5サブノートです。通称タマです。CPUがMMX Pentium-200MHz、メモリ96M、ハードディスク3.2G。最近のマシンから見れば2世代程前のスペックでしょうか。でも、これで十分です。メモリが少々多めなので不自由は感じません。(2002年2月にハードディスクは20Gに交換しました。有り余るほどの容量です(^^)v )
    今の世代のパソコンなら十分開発は行えます。

  2. OS
    Windows Windows98 Service Pack 1
    NTの方が安定しているのでしょうが、別段不自由は感じません。ただアプリケーションのインストールには注意しています。怪しいアプリケーションはOSも壊します。なんでもかんでもインストールしたり、アンインストールしてると怖いですよ。インターネットブラウザはIEの4.0 Service Pack 2です。兎も角不安定なソフトは入れない。特にマイクロソフトは要注意です。安定していると評判が出てから使いましょうね。
    Windows95/98/NT4.0で開発できます。Windows2000でも大丈夫だと思いますが、開発アプリケーションが対応していないとだめです。ちなみにBorland C++ Builder 5.0はWindows2000にも対応しています。
    (2002年11月にメインマシンをWindows2000に入れ替えました。Borland C++ Builder 3.0は正式にはWindows2000には対応していませんが、私の使う範囲では問題ありません。IEは5.5です)

  3. アプリケーション

    Borland C++ Builder C++開発環境 .... Borland C++ Builder 3.0 Standard
    C++言語ベースの統合開発環境です。ウィンドのデザインはほとんどがGUI(グラフィカルユーザーインターフェース)でできてしまいます。オブジェクト志向ですから属性の変更だけでいろいろな振る舞いをさせることができます。BCBのVCL(Visual Class Library)はよくできていて、ほんとうにサクサク画面周りができます。デバッグも楽ですし、生成されるプログラムはWindowsの32ビットネイティブコードでとても早いです。Visual BASICを知っている人ならC++だと構えることもなく馴染めるのではないでしょうか。私はVisual BASIC、Visual C++も使って来ましたが、Borland C++ Builderが一番使いやすいです。同じくDelphiもあるのですが、どうしてもC++が使いやすいのは私の性分と言うことで。
    使っているのはBCBのエントリークラスです。私はデータベースはやらないし、クライアントサーバシステムの構築もしないので、最低限のStandardで十分です。しかもまだ3.0です。4.0も持っているのですが(4.0ではStandard→Learning)、4.0で開発するとアプリケーションのサイズが更に大きくなってしまうし、3.0で不自由は感じないのでそのままです。

    Paint Shop Pro ペイントソフト .... Paint Shop Pro v3.2J
    アプリケーションのボタン等のGUIを作るにはペイントソフトが必要となります。Windowsおまけのペイントブラシでは少々辛いです。 Paint Shop Proは比較的安価なペイントソフトです。べつにPaint Shop Proが適しているわけではありませんが、最低限16色、256色のビットマップ形式画像が作れるものが必要です。また画面イメージをヘルプに貼り付ける時には減色処理も必要です。
    私はこれだけで写真レタッチ、ホームページ作成もやっています。いろいろな形式の画像を取り扱えるのが便利です。操作も軽いし、別に不満はありません。若干プログレッシブJPEGに対応していない等の問題があるので最新バージョンにアップグレードするつもりです。

    ヘルプカード1999 ヘルプ作成環境 .... ヘルプカード1999
    momoさんこと梅木 泰宏さんの有名なシェアウェアです。比較的簡単な操作でWindowsオンラインヘルプが作成できます。最近はHTML形式のヘルプがはやりですが、この形式は仕様があいまいだったり、開発環境が良くなかったりとまだまだ問題があるようです。
    全くの個人使用ならヘルプを作る必要もありませんが、もし不特定多数の人に使ってもらうのなら必ずヘルプをつけましょう。ヘルプを必要としないアプリケーションも理想と言えば理想ですが、ヘルプがないのはパブリックなソフトとは絶対言えないと思います。

    最低限これだけのアプリケーションがあればプログラムの開発ができます。あとはワープロ、スプレッドシート、Windows標準のものよりはもう少し機能のあるメモ帳は欲しいですね。私はEmEditorフリー版を使っています。アイコンエディタやホットスポットエディタがあると重宝します。


  4. 情報入手源
    プログラムの開発をするにはいろいろな知識が必要となります。C++言語知識は最低限としてWindowsソフトウェア特有のAPI(Application Program Interface)の知識が必要です。BCBでは多くはVCL関数でいろいろなWindow操作ができるのですが、どうしてもWindows APIに頼らなければならないこともあります。そんなときに教えを請うところがあれば挫折しなくても済みます。

    http://www.borland.co.jp(旧http://www.inprise.co.jp)
    BCBの開発元Borlandのホームページです。Borland日本が運営している公式HPです。こちらで情報を入手できますが、難しい内容だと米国本社の英語版のHPも読まなければいけません。御覚悟めされよ。


    BCBに関する書籍は沢山出ています。2冊ほど私の手もにもあります。でも、大抵この手の本はマニュアルの焼きなおしが多くて、役に立つのは全体の1%程度です。ないよりはましでしょうか。

    オンラインヘルプ
    BCBのオンラインヘルプにはサンプルが沢山載っています。またヘルプとは別にサンプルプログラムも沢山ありますので参考になります。ただし、サンプルプログラムでも「プログラムを読む」力が必要になります。それにサンプルプログラムはエラー処理等がほとんど無視されているのでそのまま流用するのは危険なことがあります。
    WindowsAPIのオンラインヘルプもBCBに付随しています。最新版は英語しかありませんのでちょっと大変です。少し古い日本語版でも役立ちます。


次回はアルゴリズムを作りたいと思います。独断と偏見で「アルゴリズムとは何ぞや!」も合わせて述べさせていただきます。


目次に戻る目次に戻る トップに戻るトップに戻る