2012年8月27日月曜日

docx,pptx,xlsxの実体はzip

前回の投稿でバイナリデータのヘッダについて触れましたが、 http://2ndgd.blogspot.jp/2012/08/blog-post_24.html こちらのリンクにあるように、Office関連のファイルは同じヘッダで 区別することができません。 http://www.garykessler.net/library/file_sigs.html また、上記参考リンクの「DOCX, PPTX, XLSX」の項目にあるように、 office2007製品から拡張子が変わっているだけでなく、 「OOXML」というXML形式にデータの仕様が変わっており それらの実体はZIP圧縮されたデータで、「DOCX, PPTX, XLSX」などのファイルの 拡張子を「.zip」に変更して解凍するとその中身が 複数のxmlファイルや画像ファイルなどから構成されていることが確認できます。 今更なお話でした。

2012年8月24日金曜日

バイナリデータのチェック

VBSでバイナリデータのヘッダをチェックするコードを書いてます。
バイナリデータのヘッダ情報については以下のページを参考にしました。
http://www.garykessler.net/library/file_sigs.html

方法はADODB.Streamオブジェクトで引っ張って、ダンプ形式に変換するというものです。
参考コード
Function GetBinaryDumpDisplay(filename,length)
 Dim Stream
 Set Stream = CreateObject("ADODB.Stream")
 Dim LineBuffer,DispBuffer,CWork,i,j
 Stream.Open
 Stream.Type = 1  ' StreamTypeEnum の adTypeBinary
 Stream.LoadFromFile filename
 DispBuffer = ""
 j = 1
 Do while not Stream.EOS
  LineBuffer = Stream.Read(1)
  Cwork = AscB(LineBuffer)
  Cwork = Hex(Cwork)
  Cwork = Ucase(Cwork)
  Cwork = Right( "0" & Cwork, 2 )
  DispBuffer = DispBuffer & Cwork & " "
  If (j Mod 16) = 0 Then
   DispBuffer = DispBuffer & "
" & vbCrLf End If If j = length Then Exit Do End If j = j + 1 Loop Stream.Close GetBinaryDumpDisplay = DispBuffer End Function

2012年8月14日火曜日

バスケットボール

ロンドンオリンピック2012が終わった。


始まる前はほとんど興味はなく、

「バスケとサッカーくらいは見るか」

などと思っていたのだが、各競技での日本の選手たちの活躍
ネット配信の充実などもあって結果的には今までで
一番じっくり見たオリンピックになった気がする。


そんな中、男子バスケットボールは大方の予想を裏切ることなくアメリカの優勝で終わった。
個人的には戦術もクソもないゴリ押しのアメリカのバスケットが
どこかで負けるところを見たかったのだけど、残念ながらそうはならなかった。
というよりは予選序盤こそゴリ押しが目立ったアメリカだったが、
トーナメントに入り、対戦相手が強くなるにつれて
ある程度の役割分担ををして軌道修正していった気がした。

決勝を戦ったスペインは高さを活かし期待通りの素晴らしいバスケットを見せてくれた。
終盤のプランニングが上手く行けばもっとアメリカを追い詰められたに違いない。

相変わらずオールスターのような選手構成で臨むアメリカチームだが
今後の世界選手権や五輪ではもっとロールプレイヤーを厚くし、
全体のバランス、戦術を考慮した選考をして欲しいものだ。
(そしてコービーのような選手は二度と選ばないで欲しい)


また、NBAでは驚きの移籍がいくつか行われているが、
なかでもNBAファンを驚かせたのはLALだろう。


ドワイト・ハワード
パウ・ガソル
ワールド・ピース
コービー・ブライアント
スティーブ・ナッシュ

アントワン・ジェイミソン
スティーブ・ブレイク
クリス・デュホン


・・・・・・・・・・・・・・・・・・・こんなん卑怯や。