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

    KAB-studio.h


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

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

/*        Pubzine 読者の方へ - まぐまぐ移行のおねがい -           */

　本メールマガジン、 KAB-studio.h は「まぐまぐ」と「 Pubzine 」の
２通りの配信サービスを利用させて頂いております。
　このふたつのサービスうち、 Pubzine が２００４年２月９日で終了する
そうです。そのため、この日以降、 Pubzine で購読登録している方は
KAB-studio.h が配信されません。
　引きつづき KAB-studio.h を購読登録したいという方は、お手数ですが
[まぐまぐの KAB-studio.h 登録画面 ]にて購読登録をしてください。

[ Pubzine ]
http://www.pubzine.com/
[ Pubzine の KAB-studio.h 解除画面 ]
http://www.pubzine.com/detail.asp?id=590
[ まぐまぐの KAB-studio.h 登録画面 ]
http://www.mag2.com/m/0000012198.htm

Ｑ：かぶスタ側で移行してくれないんですか？
Ａ：こちらでは皆さんのメールアドレスはわからないので不可能です。
　　わかっても困るでしょ。
　　Pubuzine も「他に移管する」ということはないそうです。


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

・ほとはー１話追加
　三人合体ホットハーブに６の１１を追加。だって男だもん。
[ 三人合体ホットハーブ ]
http://www.kab-studio.biz/Comic/HotHerb/index.html

・表紙壁紙はパス
　結局、表紙壁紙はパスすることにしました。無くなるかどうかは不明。と
りあえず来月、トップ絵は変わります。

・冬コミ落ちました
　冬コミに落ちてしまいました……。なので、冬コミ向けの頒布物は作成し
ません。詳しくはコミケガイドを参照。
[ コミケガイド ]
http://www.kab-studio.biz/Info/Product/Comiket.html


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

2003/11/02 (Sun)
　１０時まで起きててぐだーっとしてビデオ見て。１時から１１時半まで
休出。精神状態に左右されすぎ。藍より青し見たり。そして秋葉原のカレー
店。そこは盲点だった……。

2003/11/03 (Mon)
　部屋の片付けと ToHeart 。ホットカーペット来る。おしごと的なことはせ
ず。表紙壁紙どうしようかなー。意外と人気高いし。とりあえず１２月にク
リスマスかな？

2003/11/04 (Tue)
　ファイルのマージとデプロイと。午後から某Ｓ社の下半期全社会議へ。
ホームページ知ってるリアルワールドの知り合いが増えていく……。なんか
疲れた。

2003/11/05 (Wed)
　かぶヘッダー縮刷版のアップロードを忘れてた……。マジで疲れてるか
も……。会社のサーバー１台が重篤に。忙しいのはわかってもらえてるんで
助かるけど。そして指輪。そして忘れた。ゴメン。

2003/11/06 (Thu)
　午前休取るつもりだったのにさくっと目が覚める。新規要員来る。画面と
結合してなんか大変。ガンスリ中止のおしらせ。 Pubzine が終わるので移
行してください。かなりギリギリ……。

2003/11/07 (Fri)
　ヒアリングを３時まで。そのあとちょっとして少し早く。横浜で色々購
入。なぜに巻き取り式耳掛けイヤフォンは１製品しかないの？　液晶ディス
プレイアーム来る。そしてアレ出席。

2003/11/08 (Sat)
　冬コミ落ちました……。頒布品は作らない方向で。でも作れる時に作って
おく予定。疲れてる……。通販システムの問題点。土曜のアニメはどれもい
い感じ。不在者投票混んでました。


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

■　第九章　四人　−８−

「……雅樹、おまえは矛盾している」
「！？」
　再び雅樹を見つめて、鷹人は語り始める。
「おまえ、しんがりを努めるつもりだろう」
「ああ」
「死ぬ気か？」
「……いんや、赤葉がいるんだ、死ぬ気なんかさらさらないよ」
「相変わらず、赤葉は嘘が下手だな……」
　目を伏せる赤葉に、鷹人は優しい目を向ける。
「……」
「死ぬ気のおまえ達ふたりの方が、ここにこだわってるように見えるな」
「鷹人」
　一歩前に出て、穂香が鷹人の目を見る。決意した瞳。
「俺達はここで生まれて、ここで育った。下界なんて数えるほどしか降りて
ない。結局は、ここを離れて生きるなんてこと、できっこないんだ」
「できなくなんて」
「自分達にできないことを押し付けるな！」
　鷹人は声を荒げて雅樹を諫める。
「ふん、決まったな」
　白葉は喉元の刃を押しのけ、気の抜けた雅樹はそれを許す。
　が。
「赤葉、まだ拘束してて」
「なに？」
「えっ、うん」
　穂香の言葉に呼応して、赤葉は手をかざし炎で白葉の道を遮る。
「どういうことだ」
「案は私が決める。まず村人全員に意見を聞き、希望者のみ残ってもらう」
「それでは人数が足りないと」
「士気が低いと意味がない。下で待ち伏せるには迅速な展開が必要だ、嫌々
やってもらっては困る。鷹人もいい？」
「ああ、もちろんだ」
　鷹人は納得ずくでうなずいた。
「駄目だ」
「白葉様にはここで隠居してもらう」
「なんだと！？」
　目を剥く白葉に、鷹人は淡々と言った。そして、穂香に確認を取る。
「それでいいんだろ？」
「ええ」
　穂香もうなずいた。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『冬コミ落ちちゃったね』
「倍率的には結構大変だからね」
『むしろ初めてのコミケが通ったっていう方が不思議？』
「かもね。こういう、運に左右される部分は何とかした方がいいのかも」
『なんとかって？』
「うーん……」
http://www.kab-studio.biz/index.html
_______________________________________________________________[KCM]

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

　Version 12.08
TEXT と BYNARY

「忘れたかもしれないけど、 Version 12 のテーマはテキストとバイナリー
です」
『なんか浮動小数点のイメージが強くて忘れてた……』
「で、テキストとバイナリーが大きな問題になるのは、ファイルを使った場
合です」
『ファイル？』
「ファイルじゃない、つまりメモリに全部データを入れている場合に問題に
ならないのは、そのデータがどういうデータなのかわかるから。 double に
は前回見たようなフォーマットでデータが入ってるわけだから」
『そんなの当たり前じゃん』
「逆に言うと、ファイルから取り出した double のデータが、本当に 
double かどうかわかんないってこと」
『……？　わかるでしょ、よくわかんないけど、 double でファイルに書い
て、それを double で取り出せばいいんだから』
「 double でファイルに書く、っていうのを他のアプリがしたら？」
『あ……』
「昔と違って、今はいろんなアプリを組み合わせて使うのが普通だし、ネッ
ト経由でデータだけもらって読み込むってことも多いから、そういった部分
でうまくいかないかもしれないわけ」
『つまり、 double でファイルに出力するところを、そうしないかもしれな
い、ってわけ？』
「そういうあからさまに違うのもあるし、ほんのちょっとした細かい違うも
あるし。それに、自分のアプリだけで書き込んで取り出しても、うまくいか
ないこともあるから」
『へ？』
「ちょっとした形式違いで失敗するから。で、どういう時にそういう違いが
出るのか、どういう時に気を付けなきゃいけないのかを」
『これから教わるわけね』
「そういうこと。で、まずは改行文字について見てみます」
『改行文字……って、 \n だよね』
「そう。プログラム上では、 \n でオーケー」
『プログラム上では……？』
「ファイル上では違うんです。 Version 9.17 ( No.178 ) を思い出して」
『あ！　そういえば、ファイルの中は改行って \r\n なんだよね……』
「そう。つまり、プログラムの中では改行文字は \n だけど、ファイルの中
では \r\n ってことです」
『な、なんか複雑なんですけど……』
「複雑な理由は、ＯＳごとに改行文字が違うから」
『違う？』
「ウィンドウズの改行文字は \r\n だけど、他は違うってこと。 C 言語が
作られた UNIX っていうＯＳがあるんだけど」
『リナックスとかは聞いたことあるよ』
「その系統。この UNIX 系のＯＳは、テキストファイルの改行コードが \n 
なんです」
『そっか、そのころなら何も考えずに使えたわけね』
「ただ、 UNIX 系って言っても色々種類があって、それぞれに改行コードは
違うんだよね。シンプルだから判別も難しくて、文字コードの問題よりも面
倒かも」
『げ』
「って言っても、単に改行のところがうまくいかなかったりするだけで、文
字コードよりは楽だけどね」
『……そういえば、その辺ってプログラムでどうするの？　なんか全然気に
してなかったけど』
「そこがポイント。実は、普通に使う分には改行文字については気にしなく
ていいんです」
『へー』
「まず、次のファイルを Data.txt ってファイル名で作って」

AAA
BBB

「場所は .dsw ファイルが置いてあるところ」
『ほいできたよ』
「次に、 Version 5.11 ( No.076 ) を参考にして、ファイルを読み込んで
みます」

void ReadTextFile()
{
    // ファイルを開きます。
    FILE *pstFile
        = fopen( "Data.txt", "r" );
    if( !pstFile )
    {
        TRACE( "ファイルがない！\n" );
        return;
    }

    while( !feof( pstFile ) )
    {
        TRACE( "%02X\n", fgetc( pstFile ) );
    }

    // ファイルを閉じます。
    fclose( pstFile );
    return;
}

『 fgetc() って、１文字ずつ読み込むのだよね』
「そう、 Version 5.12 ( No.077 ) でやったね。 fgetc() で１文字ずつ取
り込んで、１６進数で表示するっていう関数。これを実行するとこう出力さ
れます」

41
41
41
0A
42
42
42
ffffffff

『最後の ffffffff って？』
「これは EOF 。 EOF って -1 だから」
『あ、そーなんだ。って、 EOF まで出しちゃ意味ないんじゃ……』
「ちゃんとするのなら、 fgetc() の戻り値が EOF ならループ抜ける、って
いう処理の方がいいかもね。ここではテストだから簡単に」
『そうそう、テストだもんね。で…… 41 と 42 は、１６進の A と B だよ
ね。で、改行が……あ、 0A ってことは \n だ』
「そう、こういうふうに普通にファイルから取ってくると、改行は \r\n 
じゃなくて \n だけ来ます」
『へー、便利ねー』
「でも、これが便利じゃない場合もあります」
『え？』
「まず、この \r\n が \n になるっていうのは、実はランタイムの機能。 
fgetc() とかを使うと \r\n を自動的に \n に変換してくれます」
『ランタイムの中に変換機能がある、と』
「で、問題になるのが、文字列じゃないデータを取ってくるとき。ファイル
の中に \r と同じコード、つまり 0x0D が入っていたら、それも変換され
ちゃう」
『げ、それはまずいね……』
「そこで、変換しない方法を使ってみます」

void ReadBinaryFile()
{
    // ファイルを開きます。
    FILE *pstFile
        = fopen( "Data.txt", "rb" );
    if( !pstFile )
    {
        TRACE( "ファイルがない！\n" );
        return;
    }

    while( !feof( pstFile ) )
    {
        TRACE( "%02X\n", fgetc( pstFile ) );
    }

    // ファイルを閉じます。
    fclose( pstFile );
    return;
}

『あれ？　さっきと変わらないような……』
「変わっているのは fopen() の引数」

        = fopen( "Data.txt", "rb" );

『あ！　 b が付いてる！！』
「この b は binary の b 」
『あ、ここでバイナリーが出てくるんだ』
「これを実行してみるとこうなります」

41
41
41
0D
0A
42
42
42
FFFFFFFF

『 0x0D 、 \r が入ってる！！』
「つまり、これがファイルの本当の中身。ファイルの中が \r\n で改行され
てるってことがわかったでしょ」
『ホントは \r\n で改行されてるんだけど、普通に開くと \n ……普通？』
「つまり fopen() で開くときのデフォルトは、変換するモードってこと。 
b をつけると変換しないモードになるってこと」
『今まで気にしなかったけど、そういうパラメーターがあったのね』
「ちなみに、はっきりと〈変換する〉って設定したい場合には、 b の代わ
りに t をセットします」
『？』
「つまり」

        = fopen( "Data.txt", "r" );

「と」

        = fopen( "Data.txt", "rt" );

「は同じってこと」
『つまり、何も付けてないと t が付いてるのと同じになって、それが変換
モードってことね。あ、 t って何？』
「 TEXT の t 」
『そのまんまね』
「そのまんまなら思いついて欲しいなー」
『うっ、思いついてたって！』

/*
    Preview Next Story!
*/
『普通に使ってると、バイナリーっていらなさそう』
「全体的にはテキストの方向に向かってるかも」
『え、そうなの？』
「テキストならどのＰＣでも見られるし、回線とかが良くなってきたし」
『じゃあなんかバイナリーっていらない？』
「音声や画像、圧縮をやるなら必要だよ？」
『当分やらなさそうだけど』
「というわけで次回」
＜ Version 12.09 バイナリーモードで書き込む！ ＞
『につづく！』
「でもやっぱ教える」
『う”』



////////////////////////////////////////////////////////////////////
/*                ２００３年１１月１７日（月）の更新              */
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.biz
*/
////////////////////////////////////////////////////////////////////

