Time-stamp: 2003-04-13

itouh: source codes

雑多な自作ソースコードの置き場です。C言語 (ANSI C), Perl 5.6.1 などで作成、確認。
2003-04-13 mkhtml.pl このページを作成するときに使った Perl スクリプト
使いかたは
$ perl mkhtml.pl < dat.txt > sources.html
dat.txt の書式例
2003-01-25 digiotxt.pl StarDigio (SkyPerfecTV! の音楽専門チャンネル) の番組表 PDF を取得してテキストファイルにする
perl, wget, pdftotext が必要だが、RedHatLinux を標準インストールすればどれも最初から入っているはず。日付付きファイル名で保存するので、あとから参照するのにも役立つ。使用法は、
$ ./digiotxt.pl
とする。カレントファイルに pdf と txt ファイルが保存される。取得するチャンネルは、ソースコード冒頭の @channel に記述する。
2002-08-03 skapa-1.1.tar.gz SkyPerfecTV! の番組表を取得して、テキストファイルに変換し、ブラウザ w3m で表示する
w3m のローカル CGI 機能を使って、Perl で書かれた CGI スクリプトを動作させている。詳しくは添付されたマニュアルを参照。 SkyPerfecTV! 番組表の仕様変更で使用できなくなったようだ。
2002-04-21 東雲フォント itouh パッチ 東雲14の半角英数とひらがなカタカナを修正してみた
2002-04-02 sbitget TrueTypeフォントのビットマップを抽出する
2002-04-02 teku 6x12 BDF 形式ビットマップフォント ISO-8859-1/JIS X 0201
2001-12-22 fakewav.c ファイルを暗号化する
$  fakewav -p"pass phrase? It is a long password." nasty.jpg
と実行すると nasty.jpg.wav という エセWAVファイルが作られる。WAVファイルとして聞くこともできる (ただのノイズだが)。-p" のあいだにスペースを入れてはいけない (スペース入れるとパスワードなしとなる)。Unix の場合、ファイル名を複数指定することができる。Windowsだとワイルドカード使うのはやめたほうがいい。パスワードには日本語使わないほうがいい、コンソールの文字コードがOSによってちがうから。
復号化は -d を付けて
$  fakewav -d -p"pass phrase? It is a long password." nasty.jpg.wav
とすればよい。パスワードをまちがえても、元ファイルがまちがって復号化される。パスワードを忘れたときの対処法はない。ファイルは必ずカレントディレクトリに書き出される。暗号化されているファイル名に拡張子がないと復号化のときエラーになる。復号ファイル名は、暗号化ファイル名から拡張子を1つ取り去ったものになる。
2001-11-08 shiftjis.pl 下の Shift_JIS文字表を作ったときの Perlスクリプト
$  perl shiftjis.pl 
と実行すると s.txt が作られる。
2001-11-08 shiftjis.html Shift_JISの全文字を表示する
Shift_JISの全文字を表示。HTMLの <table>がたくさん使われているので、CPUパワーがない場合、表示させないほうがよい。
このHTMLファイルは Meadow1.14では動作がおかしかったので、Windowsのワードパッドを使用して制作した。Meadow1.14では、0xed40-0xfcfcまでのグリフ(字形)を持たない文字が「\372\203」とか表示される。保存しようとすると、raw-textとして保存するか、と聞かれる。Emacs21では直っているのかなぁ。ワードパッドでは、豆腐か中黒(・)が表示されて、問題なく保存できる。
文字コードについては、http://euc.jp/i18n/charcode.ja.htmlを参考にした。
2001-11-05 iso-8859-1.html iso-8859-1の全文字を表示
2001-10-09 macbincut.c Macintoshのファイル先頭のヘッダを削る
MacBinaryの情報は www.lazerware.com にある。ファイル構造としては、MacBinaryヘッダ(128bytes) + データフォーク(?bytes) + リソースフォーク(?bytes)。ファイルの実内容はリソースフォークらしい。
このソースでは、データフォークがあればそれも削る、なければ128だけカット、としてるけど、リソースフォークの長さを調べて、そのバイト以外をカットするという方針でもいいかも。
2001-09-21 hd.c 16進数ダンプユーティリティ
ファイルの中身を16進で見るだけ。EUC-JP (JIS X 0208) 表示も可。使いかたは、
$ hd -d dog.png | head -n 64 | less
EUC-JP:
JIS X 0208は 第1バイトも第2バイトも 0xa1-0xfeになる。JIS X 0201カナは 第1バイトが0x8e、第2バイトは0xa1-0xdf。JIS X 0212補助漢字は、3バイトで構成され、0x8f2121-0x8f7e7e。
2001-09-20 imgsz 画像ファイル (jpg, gif, png, xbm) の幅・高さを HTMLフォーマットで出力する
2001-09-18 jpghd.c imgsz を作ってたとき、JPEGヘッダを調べるため作ったもの
エラーチェックは厳密ではないけど、ファイルがこわれてなければ問題ない。参考にしたのは www02.so-net.ne.jp/%7Ekoujin/jpeg/jpeg.htmlwww.ccnet.ne.jp/%7Ekrum/rg/14/jpeg.html
使いかたは、
$ jpghd ../public_html/cat.jpg
JPEGファイル内部は、おおかまかにいえば、ヘッダと圧縮データ部に分かれている。ヘッダは複数のセグメント(chunk)で構成されてて、「SOI」セグメントでファイルが始まり、「SOFn」(baseline JPG だとn=0, プログレッシブJPGだと 2かな?) に、画像の幅、高さ情報がある。「SOS」セグメントのあとで圧縮データが始まる。圧縮データのなかにもセグメントが存在することがある。'0xff'のあとが'0x00'のときでないときはそれはセグメント(の先頭)。普通現れるのは「RSTn」セグメントか「EOI」セグメントなんだけど、「SOS」が複数回でてくることもあるようだ。
2001-09-01 socket サンプル (Linux) Linux の socket によるHTTP クライアントのサンプル
2001-08-10 Winsock サンプル Winsockのサンプル。シンプルな HTTP クライアント
2001-06-16 bdfv.c BDF フォントファイルの viewer
こういうふうに表示される。
...
STARTCHAR a
ENCODING 97
SWIDTH 600 0
DWIDTH 9 0
BBX 7 7 1 0
BITMAP
78      -####---
84      #----#--
04      -----#--
7C      -#####--
84      #----#--
8C      #---##--
76      -###-##-
ENDCHAR
...
2000-11-23 build 95knmfont 95knmfont1.3の作りかた
2000-10-17 95knmfont Windows95/98で使う小さめのフォント
1998-07-25 Tica to UI font Ticago の半角カタカナ形状変更