Pack-Umpack変換

最近はホント、残業三昧。休日出勤もあるし。ていうか、残業…すればするほど思うけど、税金高いんだょ・゚・(ノД`)・゚・ 今日、給与明細を見てみたら…額面は増えるんだけど、手取りは案外増えないんだよね。うーん。

はてさて、%subj%。今日は、Cobolでツール作りしてたわけです。全体的なロジックはすぐできるんだけどさ、ひとつだけ…Cobolならではなのかね。 「数字項目」っていう意味不明な型があるんですょ。これがタチ悪くて! Unpackと呼ばれる、、数字を文字列として扱って、かつ数値計算ができる、なんていう意味不明な属性と、Packと呼ばれるこれまた意味不明な意味不明な属性と、普通のバイナリ属性の二つの属性があって。

バイナリって、ダンプとった時に読みづらいでしょ?だからそういう、ヘンな属性があるんだと思うのね。で、昔、半バイトでもケチりたかった時代の産物として、Packがある、と。

属性         : 画面表示: ダンプ表示(=こんぴゅーた内部)
Unpack   : 12345 : F1F2F3F4F5
Pack        :   12345   :  12345C
Binary    :     12345  :    3039

…って具合ね。んで、これらの変換がめんどいわけ。できるだけコンパクトかつきれいなコードが書きたいじゃない?

「なーんだ、かんたんじゃん!」って思うでしょ!? でもね、Cobolには「桁数」ってのがあって。バイト数は考えないんですょ。だから、桁数が既知で、Cobolで作ったデータをCobolで変換するんならなんら苦労しないんだけど、 どっちも不定な場合、ましてや他の言語でとかってなると、いろいろ大変なわけ!

半バイトずつ切ってビット演算 したり、足して16倍して…したり…ぅぁー、なんてダサいコードたち!みたいな!

既存のツールもたくさんあるけどねー。まぁ作っててタイクツしない課題だね、こりゃw

コメントをどうぞ