|
/*========================================================*/ <<<あゆしゃの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 |