vb.netを使用しているのですがツールを使わずにプログラムコードで圧縮、解凍するにはどうしたらよいか教えてください。
圧縮アルゴリズムの勉強をすればいいのでは?
ハフマンなりスライド辞書なりRLEなり、
自分で調べて気に入ったものを使えばいいのでは?
勿論、真似するのがいやなら、アルゴリズムそのものを
自己開発するのもアリかと。
非可逆でいいなら、再帰曲線で画像圧縮なんか
個人的に好きなネタですが。
うまくいけば、死ぬほど小さくなります。
.NET Frameworkで、圧縮/展開をするなら、
J#のZipOutputStream/ZipInputStream/ZipEntryクラスが使えます。
J#のZipOutputStream/ZipInputStream/ZipEntryクラスで作成したのですが、圧縮対象のファイルの更新日時が取得できませんでした。setTimeを使ってもうまくいかなかったです。何かいい方法ないですか?
マッグさん。
同じような質問をしていたすーといいます。
そこで解決できたので。
①まず、zip32j.dllとzip32.dllをどこかから落としてくる。
Vectorとか
②上記dllをexeと同じディレクトリ、もしくは環境変数のPathが通ってるところ(通常はsystem32以下かな)に置く。
③
==============================
Public Declare Function Zip Lib "Zip32j" _
(ByVal hWnd As Integer,_
ByVal szCmdLine As String,_
ByVal szOutPut As String,_
ByVal dwsize As Integer) As Integer
==============================
を宣言
あとは、zip()を呼び出すだけです。
ちなみに圧縮だけなら、コマンドライン引数(szCmdLine)につけるオプションは "-r" だけでよいかと。
宣言して使用できる関数については、
http://www.geocities.co.jp/SiliconValley-SanJose/1892/pc/archive.html
で、簡単にわかるようになっています。
すいません。かなり返事遅くなりました。みなさん解答ありがとうございます。みなさんの意見を参考にがんばってやってみたいと思います。また困ったときはよろしくお願いします。
ツイート | ![]() |