PHPだぜ
日記 2004年6月12日
SWFのバイナリーを読む
 仕様書を読んでいてもぜんぜん実感がわかないので、 とりあえず、簡単なものを作成してみることにしよう。  空のSWFファイルとかを書いてみるだけでもけっこう違ってくると 思います。
 現時点の問題は8bit(1byte)ごとの情報ならばC言語で最初から入っている writeなんかを使えば問題なくできるとおもうのですが。  5bit とか 11bitとか、1byteでくくれないものについては少し工夫が 必要になるとおもいます(単純により優れた方法を私が知らないだけかもしれませんが)
そこで、SWFのバイナリーを作成する前に、 (今回はバイナリエディターで直接書きません、C言語を使う予定) 1byteに収まらないものを無理くり1byteにしてしまってから書き込んでいく 作業を受け持ってくれる関数を作成していくことしましょう。 (たいしたものは作りませんし私は作れません。)
 たとえば 4bitと5bitのデーターを書き込むときには、 8bitのデーターと1bitのデーターに分けて書き込むということを行います。


こんなものを作成しました
bitsStream.c  ちなみに、これは相当問題だらけのソースです。まず ビット演算とかけてshiftというような名前を使っていたりしますが 実際はま少し異なることを行う関数だったりします。  そして、shiftFileStreamを二度続けるとコアダンプします。
FileStreamという名前の意味がわかりません。(ソース名とも違っています)
機能の説明

newFileStream_size(int) ,指定したbit数のデーターを保持するFileStreamという構造体ポインター返します。
addFileStream(FileStream,FileStream)、データどうしほFileStreamのlengeにしたがってつなげます、
peintFileStream(FileStream); FileStreamが保持するデーターを表示します。
これだけです、時間をかけていないのがばればれですね 、たぶん私が使う以外には使い道はないでしょう。


おわり
 次に続く・・・?

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!