////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.com

    送信日： 2003/09/22(Mon) No.224
    配信数： 2800 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                ２００３年９月２２日（月）の更新                */
http://www.kab-studio.biz/index.html

・ほとはー１話追加
　三人合体ホットハーブに１話追加。今回も新キャラ登場！
[ 三人合体ホットハーブ ]
http://www.kab-studio.biz/Comic/HotHerb/index.html


////////////////////////////////////////////////////////////////////
/*                        ちょお普通な日記                        */
http://www.kab-studio.biz/nikki2/index.html

2003/09/07 (Sun)
　午前中はほとはーとか通販のとか。今日の一枚はほとはー外伝１の敵キャ
ラ２。ウイイレ対戦で負けまくり。午後からぼーっと。ほとはーを休むのっ
て久々かも。

2003/09/08 (Mon)
　UNIX SystemV システムコール。 fork() に感動。結構すんなりいった。
SE-80PCI を衝動買い。注文来てたー！

2003/09/09 (Tue)
　夏休み前の追い込み。そのために休出予定。さらに客先トラブルの電話
が。へろへろです。明日から３日間旅行です。

2003/09/10 (Wed)
　旅行は中止に（泣）。台風で。なんか疲れた……。そしてセッション 
ID 。勝手に付けてくれてるんです。

2003/09/11 (Thu)
　客先トラブルの検証。そのあとはプログラミング。 UNIX 用なんだけど、
Windows 用もできちゃう。

2003/09/12 (Fri)
　やっとプログラム完成。かなりの数のテストコード。今日の一枚はメイド
さん。オリキャラです。そしてごみ箱から元に戻す方法。どうするんだろ
う……。

2003/09/13 (Sat)
　昼寝。代替サーバー起動バッチ。今日の一枚はメイドさんとベレッタ。ほ
とはー外伝２はこの方向で。

2003/09/14 (Sun)
　目が疲れてる……。今日の一枚はほとはー新キャラ。描いて初めてわか
る。作るってそういうこと。ヒット数が高い理由。間違えて書いた方がいい
らしい。

2003/09/15 (Mon)
　眠っても疲れが取れない。 .hack//GIFT とか水瀬さんちとか。阪神優
勝。今日の一枚は囚われのもみ。ほとはー外伝１には外伝２の予告とか。

2003/09/16 (Tue)
　単体テスト、してみるとバグが結構。今日の一枚はバジル。近未来銃のデ
ザインをどうするか。そして二重派遣の気持ち。あんま変わらないんでは？

2003/09/17 (Wed)
　単体テストを踏まえて修正。今日の一枚は昨日のリベンジ。ワールドＰＣ
エキスポ、でも行かず。

2003/09/18 (Thu)
　単体テスト仕様書とか修正して、テストをもう一度。でもバグが。ほと
はー６の４完成。新キャラがいい感じです。自分のキャラが自由に動いてく
れると楽しい。

2003/09/19 (Fri)
　単体テストしてバグ洗い出し。帰りに横浜コトブキヤとか。エアガン売っ
てない……。欲しいものあるんだけどタイムコストが……。そして Flash 
とか USB デバイスとか。

2003/09/20 (Sat)
　深夜にかぶヘッダーの準備。朝から夜までウイイレ６人プレイとかＦＦ
クロニクルとか。日曜はほとはー冬コミ版を描くか掲示板を作るか。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.biz/Novel/Fuga/index.html

■　第九章　四人　−１−

　ギィイイイィィン……。
　二刀がぶつかり合い空気を震わせてから、二人は微動だにしない。互いに
刀を押し付け、睨み合い、力比べをする。
　一人は、細面の精悍な顔立ち。長髪を後ろで束ねている。背は１８０を超
え、体も顔に似て細い。
　もう一人は、背は１８０弱と比べればやや低いが、それ以上に筋肉質の体
躯が際だっている。その男は、朴雅樹。
　細面の男が不意に下がる。雅樹は歩を進めて体制を整え横に凪ぐ。男はそ
れを刀で受け流しつつさらに下がる。
　下がりきった瞬間に刀を跳ね上げる。それを読んでいた雅樹は刀を引いて
いたが、切っ先がかすり、火花を上げ、雅樹は体制を崩しつつ距離を取る。
「読み切ったのに早すぎるぜ、鷹人（たかと）」
「斬る事に未練があるから、だ。やってみろ」
　にやりと笑って鷹人と呼ばれた男が突いてくる。雅樹は剣で受け流しつつ
下がり、そして刀を跳ね上げる。
「！？」
　鷹人の刀は動かずに、雅樹の刀だけが跳ね上がった。いや、そう見えただ
けで、鷹人の刀が瞬時に引かれそして突かれた、それを見違えただけだっ
た。
　そしてそれが、死につながる。
　腹で寸止めされた刀を見て、雅樹の頬を脂汗が流れる。
「……」
「斬りたいけど斬れずに下がる、という気持ちじゃあだめだ。斬るために引
く」
「そういう気持ちでしろと？」
「そうだ！」
　鷹人の刀が微動し、驚愕して雅樹は躱す。突ききった鷹人に返す刀で雅樹
が斬りかかる。それを引いた刀で受け流し……
（！！）
　引くと同時に跳ね上げる。その刀は高々と上がり、その下を雅樹の刀が素
通りした。今度は、雅樹の刀が鷹人の腹の前で止まる。
「そうだ、そういうことだ」
「……」
　雅樹は、呆然としていた。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『なんか一段落したね』
「でも色々と計画はあるみたいだけど」
『色々？』
「掲示板とか」
『へ〜。なんかずっと避けてたっぽいのに』
「ほとはーの掲示板らしいよ」
『プログラミングのじゃなくて？』
「プログラムのは荒れやすいから……」
『うわ、なんか問題発言っぽい……』
http://www.kab-studio.biz/
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 12.01
文字列じゃない世界

「前回までは文字列に関して見てみたけど、今回からは文字列じゃないもの
について見てみます」
『文字列じゃないものってゆーと、 int とかそういうのってこと？』
「そういう感じ。ただ、実はこの辺はすごく曖昧だったり複雑だったりする
から、最初にその辺をはっきりしておきます」
『はーい』
「まず、 Version 4.04 ( No.054 ) からの２進数やビット関係の話を思い
出して」
『パソコンの世界は全部ビットで表されてるって話だよね』
「そう。ビットの組み合わせで数字とかも表されてるわけ。たとえば int 
の変数に 0x00000001 が入ってたら 1 とか」
『あと符号とかのビットとか色々あるものね』
「そうそう。そして、その数字で文字も表すことができる、ってことを 
Version 11.01 ( No.201 ) とかで説明しました」
『 A が 0x41 とかね』
「この 0x41 を１０進数で表すと 65 になる、ってことをふまえて、 int 
と char を比較してみます」

int に 0x41 が入ってると 65 という数になる。
char に 0x41 が入ってると 'A' という文字になる。

「ってことが言えます」
『え？　でもさ、 char は数字としても使えるんだから』

char に 0x41 が入ってると 'A' という文字にも 65 という数にもなる。

『っていう方が正しいんじゃない？』
「そう！　ポイントはそこ。 char に 0x41 が入ってたとき、それを 'A' 
って文字とみなすこともできれば、 65 って数とみなすこともできます」
『みなし、ね』
「そう。逆に、 int に 0x41 が入ってたときに、この中に 'A' が入って
る、ってみなすこともできるんです」

void OutputIntChar()
{
    int i = 0x41;
    TRACE( "%c\n", (char)i );
    // A
}

『お、キャストしたら A ってなるんだ』
「つまり、メモリ上のビットが 0x41 ってあったら、数字の 65 ってみなす
ことも、文字の 'A' ってみなすこともできるってこと」
『元が同じでも見方を変えると違ってくるわけね』
「そう考えると、文字列のデータ、文字列じゃないデータ、っていうのは明
確な分け方がないんです」
『見方によってそうだったりそうじゃなかったりするから？』
「そう。たとえば Version 11.06( No.206 ) でやった文字コードの話」
『そか、文字コードが違うってことは、それも見方が違うから』
「文字コードが合っていれば文字列のデータだって判るけど、違ってれば全
然関係ないデータって見えるわけ」
『なるほどね』
「で、今回から見ていくのは、そういう見方見え方の話」
『どういう見方をするとこう見える、みたいな？』
「そんな感じ。たとえば、 int の場合、文字にも数字にも見えるわけで
しょ」
『うん、さっきやったね』
「でもそれは見える、ってだけの話。 int の中に 0x00000041 が入ってい
たとします」
『数字の 65 だね』
「それを文字列の "65" に変えるときにはどうするか」
『むむむ？』
「 0x00000041 は数字の 65 ってみなせるけど、それはそうみなせるだけ。
文字列の "65" は、文字コードだと 0x36 0x35 になるから」
『つまり 0x00000041 を 0x36 0x35 に変換しなきゃいけない』
「そういうこと。こういう、見えてるだけじゃなくて、実際にそういう形に
変える方法、っていうのをこれから教えていきます」
『はーい』
「それともうひとつ、文字列とはみなさないデータについて色々と説明しま
す」
『ん？　どゆこと？』
「たとえば int 。 int を数字としてみなす方法は教えたよね」
『 Version 4.04 ( No.054 ) でやったね。 int ってゆーより、２進数とか
１６進数の計算方法だったけど』
「その計算方法も、ルールを知らなきゃ計算できないでしょ」
『そーゆールールを教えてもらう？』
「ルールもいっぱいあるし、それで気を付けなきゃいけないこともたくさん
あるから」
『む、 CString みたいに、知らないとまずいのとか？』
「あるよ、結構。たとえば、小数点を含む計算とか」

void Double01()
{
    TRACE( "%.20f\n", 0.1 );
    // 0.10000000000000001000
}

『 0.1 を出力してるだけ……あれ？　なんか変なとこに 1 が入ってる
よ？』
「そう。実は、コンピューターの世界では 0.1 は厳密には 0.1 じゃないん
です」
『どどど、どういうこと？？？』
「詳しくは今度説明するけど、簡単に言うと、小数点以下は int の時と違
う方法表してるから」
『違う方法？』
「 0 は 0 、 1 は 1 、 2 は 10 、 3 は 11 、とかみたいに１対１になら
ないってこと」
『？？？』
「ま、まぁこれはかなり面倒だからあとでちゃんとってことで」
『なんかちょっと怖い……』
「他には、構造体の話も」
『構造体って、クラスみたいなのでメンバ関数がないのだよね』
「 Version 8.13 ( No.155 ) とかでやったね。その構造体にはちょっと特
殊な性質があるんです。次のような普通の構造体」

struct TEST_STRUCT
{
    char m_ch;
    int m_i;
};

「この構造体のサイズは？」
『 char が 1 バイトで、 int が 4 バイトだから、 5 バイトだね』
「ところが！」

void SizeOf_TEST_STRUCT()
{
    TRACE( "%d\n", sizeof( TEST_STRUCT ) );
    // 8
}

『えっ！？　8 ？？　なんで！？』
「っていう性質があるんです」
『げ、そっか、これも答は今度ってことなんだ』
「そういうこと」
『なんかストレスたまる……』
「最後に、ファイル関係について見てみるつもり」
『ファイル？』
「文字コードの問題を例に挙げると、普段使っている Shift-JIS や、標準
で使える Unicode の文字コードとは違う文字コードを普通に使うことはあ
まりありません」
『どゆこと？』
「たとえば JIS とか EUC って文字コードでも、読み込んだら Shift-JIS 
や Unicode に変換してから操作します」
『 JIS とか EUC のまま操作はしないってこと？』
「だって、ランタイムとか API は JIS や EUC には対応してないから」
『そっか、そういうのを使うためには Shift-JIS とかに変えておかないと
いけないんだね』
「だから、他の文字コードを使うとき、っていうのはたいがいファイル操作
と関係してくるんです」
『ネットワークとかは？』
「……関係してくるけど、難しいからも少しあとで」
『やっぱ関係するんだ』
「ま、結局は他の種類のコンピューターのファイルを使う機会があれば、そ
れは文字コードを気にする必要がある、ってところかな」
『文字コード以外のは？』
「それも重要。さっきの構造体のとか」
『あのサイズの話ね』
「あれなんて、同じ Visual C++ で作ったファイルでも、問題が出てくる場
合があるから」
『げ、そうなの？』
「さっきのサイズの話、あのときは 8 だったけど、設定を変えると 5 にも
なるから」
『げげ！』
「そういう複雑な部分がいっぱいあるから、それをひとつひとつ解決してい
こうね」
『はーい』
「う”、乗り気でないね」
『ちょっとめんどそう……』
「まぁね、この辺は苦手な人多いし、難しく考えず、こつこつとやった方が
いいかも」
『苦手な人多いんだ……』
「最後に、最初の話題のまとめ」
『最初の話題？』
「文字列かそうじゃないか、っていう話」
『あー』
「基本的には見方の問題なんだけど、それでも、文字列として判断できるも
のを【テキスト】、判断できないものを【バイナリー】って言います」
『バイナリーって、前に聞いた』
「 Version 1.0 ( No.003 ) で【バイナリーモード】ってやったでしょ」
『あ、そーか、ファイルを１６進で見るってやつだ。……そっか、つまりそ
れって文字列として見ない、ってこと？』
「そういうこと！　バイナリーモードは、開いたファイルを１６進で表示し
ます。その１６進の数字が文字列として表示できるとしても」
『 0x41 だとしても、 A じゃなく 0x41 で表示する、ってことね』
「そういうこと。まぁ右端に、変換できたときには文字列が書いてあるし」
『あ、ホントだ』
「こういうふうに本来は見方の問題なんだけど、逆に、テキストモードで開
いて、文字列になっていたら、そのファイルを【テキストファイル】って言
います。そうじゃないファイルを【バイナリーファイル】って言います」
『？？？』
「まぁ簡単に言って、エディタで開いて文字列が表示されたらテキストファ
イル、意味不明だったらバイナリーファイル、ってことかな」
『でもそれじゃ文字化けとかもバイナリーファイルってことにならない？』
「そこが微妙なところだね。だから、この辺は曖昧かも。でもこういう部分
で結構問題が出てくるから、その辺をどうプログラム上でクリアするか」
『それをこれから勉強するわけね』
「そゆこと」

/*
    Preview Next Story!
*/
『なんかなぞなぞの答なしって感じ』
「でも実際、そんなもんだよ」
『え？』
「答がなかったり、誰かが勝手に作った物だったり」
『だからあたしも考えなきゃいけないわけね』
「ま、それでも現状の【答】は知っておいた方がいいかな」
『というわけで次回』
＜ Version 12.02 数字と文字列の変換 ＞
「につづく！」
『まずはいろんな答を憶えろってわけね』
「それから、自分の答を見つけるわけ」
『それが一番難しそう……』


////////////////////////////////////////////////////////////////////
/*                ２００３年９月２９日（月）の更新                */
http://www.kab-studio.biz/index.html

・ほとはー１話追加予定
　三人合体ホットハーブに１話追加予定。


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.biz/Info/MailMagazine/

    (C)KAB-studio 1999 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.com
*/
////////////////////////////////////////////////////////////////////

