データの圧縮
投稿日時 2015/02/22 20:52:26ゲストさん、こんにちは
高級アプリ製作の極意 ~WPF編~のお部屋へようこそ。
このお部屋では 第14章 の「 データの圧縮 」についてお話したいと思います。
アプリケーションを作成していけば 必然的に必要になるのがデータの入出力 なのですが 単純なテキストやバイナリをそのまま出力すると大変 なことになります。
それは、 ファイルのサイズ です。
とくに テキストファイルはどんどんファイルサイズが太ります
そこで必要になってくるのが圧縮してのサイズを小さくすることです
圧縮ってファイルサイズが小さくなるだけじゃなくてちょいと良いことがあるんですよ
それは、 データの安全性の向上 です
下手に圧縮ファイルをいじれば展開出来なくなります。
テキストに比べれば可読性が悪いのでデータを直接いじることも難しくなります
今回のサンプルでは 圧縮を行うため便利な関数を含めていますのでそのまま利用できます
関数の処理だけなのでVisual Studioの画面はいらないと思うのですが・・・
WPFを使ったアプリの 上級編ってことでWPFの利用テクニックを追加で紹介 しますよ。
今回のアプリでは処理結果をTextBlockで画面に表示しています
おなじみの Bindingを利用すればプログラムで設定した文字が表示できる のですが今までのやり方、 変数に代入するだけでは表示されない問題 となります
これは、変数が変わってもUIの表示が更新されないために発生するのです。
赤線で目印をしたところが PropertyChanged と言う バインドされた変数の更新を受け取ってUIを更新する ためのやり方です
黄色線はウィンドウの設定で今までのサンプルで使わなかったものです。
それぞれの内容です・・・
WindowsStyleでツールウィンドウ表示に
ResizeModeでウィンドウサイズを固定に
SizeToContentで高さをUIに合わせて自動調整するように
TopMostで最前面表示に
WindowStartupLocationで実行画面の中央に表示されるように
各プロパティに設定した項目の説明でした。
今回もサンプルを載せましたので色々いじって研究してみてはいかがでしょう
サンプルダウンロード
サンプルイメージ画像
圧縮したいファイルのパスを指定して圧縮ボタンを押すことで元ファイルの隣に圧縮済みのデータを保存します。(圧縮後は.zlibと言う拡張子が付きます)
展開したいファイルのパスを指定して展開ボタンを押すことでZLib圧縮されたファイルを展開してファイルに保存します。(.binファイルとして拡張子を指定してます)
出来れば圧縮したことが分からない拡張子を選択することをおすすめします。
サンプルは簡単なエラーチェックのみをしていますので 製品アプリを製作する際はエラーチェックをしっかりとして 下さいね。