メルマガ:あゆしゃのC言語プログラミング
タイトル:あゆしゃのC言語プログラミング(Vol.514) あいすエディッタ Ver 0.0.0.2  2004/10/29


/*========================================================*/
    <<<あゆしゃのC言語プログラミング>>>
/*========================================================*/
 第514回 あいすエディッタ Ver 0.0.0.2
 発行    2004年10月29日(金曜日)
 発行数   約2600

{magclick}
/*========================================================*/
 はじめに ( 決り文句 )
/*========================================================*/
・このメールマガジンは、主にまぐまぐさんから発行しています。
・ジャンルは、マルチメディアのプログラム、C言語です。
・横60文字で作成し、インデントは大抵半角スペース4つです。
・ここで扱うプログラムは、C言語と半光年以内のものです。
・登録解除は、メルマガのホームページでお願いします。
・過去ログはバックナンバー(下欄参照)を活用して下さい。
・内容は私が感じたもので、最新の技術も、へたれもあります。
・わかりやすさを優先させる為、たまに嘘があるかもしれません。
・セキュリティ突破のため、暗号化された単語があります。

/*========================================================*/
 ご挨拶
/*========================================================*/

 こんにちは。あゆしゃです。

 先日、うれしいお知らせがありました。

 ベクターより10月26日付のダウンロード報告がありました。

 その結果、

★デスクトップショットが通算1897件!

 前回(9月26日付)が799件でしたから、1ヶ月でなんと

★1098件

 ものダウンロードがありました。すごいことです。

★微妙に、メルマガ登録数も増えました!


 ウィンドウズ標準のデスクトップ機能を知らない人が多いからで
しょうか?

 しかしこの機能はタスクバーを非常に圧迫するため、コンパクト
なだけ私のデスクトップショットが勝っているのでしょうか。


 ・・・もしかしてバージョンアップしたから?

{magclick}
/*========================================================*/
 今回のお題  << あいすエディッタ Ver 0.0.0.2 >>
/*========================================================*/

 前回のものに、メニューを追加し、ファイルの入出力処理を
入れました。

プロジェクト
http://ayusya.hp.infoseek.co.jp/Download/AysEditer_0002.zip
実行イメージ
http://ayusya.hp.infoseek.co.jp/Image/AysEditer_0002.jpg

 今回は大丈夫ですよ?

/*========================================================*/

 ファイルの入出力について、簡単に説明します。

 まずは入力、読み込みについて。

 ファイルを開き、バッファに内容を読み込んでいます。

 ファイルを開くときのモードは、

CFile::modeRead | CFile::typeBinary

 としておきます。バイナリタイプなのがポイントです。

 テキストタイプにしてしまうと、改行文字を変えてしまうので、
おかしくなるときがあります。

 ファイルのサイズは、開いた後に、

CFile::GetLength()

 これで取得できます。簡単です。

 バッファの管理は面倒なので、CString に任せます。

LPTSTR buff = file_buff.GetBuffer( file_size + 1 );

 +1はNULL文字ですが、必要ないです。でも念のため。

 ロードは、CFile::Read() で一気に行います。

file.Read( buff, file_size );

 NULL文字はファイルに含まれていないので手作業で付与します。

buff[ file_size ] = 0;

 後は CEdit にドッカンと設定します。簡単ですね。

/*========================================================*/

 続いて、保存について。

 読み込みよりも簡単です。

 CEdit からドッカンと CString に読み込んで、それを一気に
書き込みます。

 やっぱりバイナリモードで書き込みます。ただし、

CFile::modeWrite | CFile::typeBinary | CFile::modeCreate

 必ず作成モードを指定しておきます。
 これがないと、新規作成のファイルに失敗してしまうからです。

/*========================================================*/

 改行コードについてまったく考えていないように見えますが、
まったくそのとおりです。

 OSと同じ改行コードならば、大丈夫です。

/*========================================================*/

 ついでに、例外について。

 FileException という関数を作り、例外処理を任せます。

 例外からメッセージを取得するには、GetErrorMessage を
使います。

 例外が発生している危険な状態なので、CString は使わずに、
char[] を使います。

 最後に例外は、Delete() で開放します。

{magclick}
/*========================================================*/
 さいごに
/*========================================================*/

 今後の予定です。あくまでも予定です。

 大型計算機「LC」の仕上げとシェアウェア登録

 グラフィックエディッタ「あいすドロワ」の作成
 ファイル比較ツール「あいすでふ」の作成
 C言語解析ツール「しーますた」の作成

★メジャーを登録済み、登録完了待ち

{magclick}
/*========================================================*/
 次回予告
/*========================================================*/

 次回は11月1日(月曜日)に、第515回をお送りします。
 お題は「あいすエディッタ Ver 0.0.0.3」

 行番号を表示させます。

 お楽しみに!

/*========================================================*/
 最後の決り文句
/*========================================================*/
 このメールマガジンは、まぐまぐさんから発行しています。
 このメールマガジンを解除したい場合は、まぐまぐさんをご利用
ください。このメルマガのまぐまぐアイディーは最後にあります。
 このメールマガジンには広告が挿入されていますか?
 このメールマガジンの内容に文面の引用はありませんか?
 めーらっくすの場合はめーらっくすの利用方に従ってください。
 このメールマガジンの内容の、転用、流用、宣伝、リンク、
定規を登録しました。 なんて大歓迎です。

{magclick}
/*========================================================*/
 
/*========================================================*/

発行者 あゆしゃ

ホームページ::あゆしゃの世界
http://ayusya.hp.infoseek.co.jp/

ご意見・ご感想・ご質問メール
mailto:ayusya@flamenco.plala.or.jp

まぐまぐ::アイディー
0000020674

まぐまぐ::登録と解除
http://www.mag2.com/m/0000020674.htm

まぐまぐ::バックナンバー
http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674

めーらっくす::アイディー
MM3E1AEE285AB4F

めーらっくす::登録と解除
http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F 

めーらっくす::バックナンバー★最近のものならこちらが便利★
http://www.mailux.com/mm_bno_list.php?mm_id=MM3E1AEE285AB4F

ブラウザの閉じるボタンで閉じてください。