FC2ブログ

Hyundai X93W

子供の液晶モニタのバックライトが切れたので、お父さんのCRTを代わりに。
で、お父さんはこっそりツクモ ネットショップで液晶モニタを注文。(^^;

Hyundai X93W
ko_monitor_xseries_x93w_front_m

1440x900のワイドで、 \10,999は、まぁいいところ。
そのまま繋いでUbuntuを起動すると、以前のモニタ設定(1024x768の横に間延び)なので、
xorg.confを、
Section "Monitor"
    Identifire    "Configured Monitor"
    Horizsync    56
    Vertrefresh    60
    modeline "1440x900@60" 106.47 1440 1520 1672 1904 900 904 932 -HSync +Vsync
    Gamma    1.0
EndSection

Section "Screen"
    Identifire    "Default Screen"
    Monitor    "Configured Monitor"
    Device    "Configured Video Device"
    Defaultdepth    24
    Option    "AddARGBGLXVisuals"    "True"
    SubSecton "Display"
      Depth  24
      Virtual  1440  900
      Modes  "1440x900@60"
    EndSubSection
EndSection

と編集して再起動。
20100327 Desktop
よっしゃよっしゃ、いい感じ。

スポンサーサイト

非実在青少年

非実在青少年というのがあちこち賑わせているが、エロゲはやらないので実際どうでもいい。
ただ、マンガは好きなので、反対派方面の方々には頑張って頂きたい。
だいたい東京都の方々もなんでそんなところを突っ込んだものか、エロゲだけにしておけば小さな話だったろうに。
(とりあえず非実在青少年がわからない人は検索を)

でこのつまらない話のカテゴリがDevelってのは、クラスの継承にまで持っていけるかなぁと思った故なんだが、どうもお題が情けないのでまとまらず。

非実在って表現も随分と非現実的で、例えばクラスが一つもないC++プログラムや、32bitプログラムしか動いていない64bitマシンだとか、セキュリティ保持のために外部と遮断してUpdateもfire-wallもないPCだとか、っていうありえないものが溢れているのが現実であって、
猫耳だとかふたなり宇宙人みたいなのが現実に居たとしても全然無害なんじゃぁなかろうか。

とまぁどうでもいいことを思ったり思わなかったり。

zipの内容を救う

4GB越えたりなんだりで、ZIP圧縮されたファイルの終端が破損している場合、Windowsのunzipでは、
'Central Directoryがみつからないよ'
と言われて展開できず、何とも悲しい事になる。
ZIPファイルの構造は割と単純なので、ファイル単体で救い出すのは難しくないだろうなと想像しながらフォーマットを探してみた。

ZIPのファイルフォーマットはPKWAREで公開されている。
http://www.pkware.com/documents/casestudies/APPNOTE.TXT

この End of Centrael Directoryの部分に、Central Directoryのファイル先頭からのオフセット値が入っているので、圧縮されて格納されたファイルのデータがそのまま残っていたとしても、ファイルの終端が壊れてCentral Directoryのオフセットが取得できないと、見つからないので開けない状況となってしまう。

圧縮されたデータ自体はファイルの頭の方から順に格納されているので、まずLocal HeaderとFile Dataを取り出し、ほぼ内容が一緒のCentral Directoryを作り、End of Central Directoryをくっつけると単一ファイルを格納したZIPファイルの出来上がり。

上記のファイルフォーマットの解説には、拡張部分の解説も含まれるため、少々複雑になっているが、
例えばUbuntu上で単一ファイルを圧縮した場合、その内容は、
$ hexdump -C aaa.txt.zip
00000000 50 4b 03 04 0a 03 00 00 00 00 ca 06 62 3c 43 77 |PK..........b<Cw|
00000010 29 02 07 00 00 00 07 00 00 00 07 00 00 00 61 61 |).............aa|
00000020 61 2e 74 78 74 61 62 63 64 65 66 0a 50 4b 01 02 |a.txtabcdef.PK..|
00000030 14 03 0a 03 00 00 00 00 ca 06 62 3c 43 77 29 02 |..........b<Cw).|
00000040 07 00 00 00 07 00 00 00 07 00 00 00 00 00 00 00 |................|
00000050 00 00 20 80 a4 81 00 00 00 00 61 61 61 2e 74 78 |.. .......aaa.tx|
00000060 74 50 4b 05 06 00 00 00 00 01 00 01 00 35 00 00 |tPK..........5..|
00000070 00 2c 00 00 00 00 00 |.,.....|
と至極単純な構造で、Local file headerにファイル内容が続き、Central Directoryがあってトレイラがつけば良いだけ。
この程度の構成ならちゃちゃっと組んだプログラムでも割と楽に操作できる。
このくらいの込み入っていないZIPファイルフォーマットは
http://www.onicos.com/staff/iz/formats/zip.html
こっちの方が見やすいだろうか。

で、ちょっとやってみたら普通に単体のZIPファイルが出来上がって、普通に展開できた。
面倒くさいんでソース載せないけども。
パスワードもファイル毎にかかるみたいだから、単体で切り出せば問題なくいきそうな。

と、ただの備忘録でした。何か期待して訪れた人ごめん。
プロフィール

f_yamaki

Author:f_yamaki

アクセスカウンタ
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム

この人とブロともになる

ブログ内検索
RSSフィード
リンク