アドレス帳は習作としてはとてもいい題材だそうです。

会社でJava研修に参加したんですが、そこでもアドレス帳を作りました。



おそらく、

・コンポーネントの利用

・文字列検索

・データ構造

・ソート

・置換

・データの受け渡し

これらの基本的なアルゴリズムを学べるからではないでしょうか。

(コンポーネントの利用はアルゴリズムではないような気がしますが)



と言うわけで、アドレス帳を作ってみます。





■プロジェクト

MFC AppWizerd(exe)



ダイアログベース



タイトルは「アドレス帳」

で、終了。



テキストエリアに入力した文字列や数値を取得してデータベースに蓄積するようなイメージですかね。





■エディットボックス・ボタン・スタティックテキスト

まずはコンポーネントから作って行きたいと思います。



アドレス帳というからには「名前」「住所」「電話番号」は当然必須でしょう。

なので、エディットボックスを3つ、スタティックテキストを3つ作ります。

エディットボックスのIDは「NEMA」「ADDRESS」「PHONE」としました。

スタティックテキストのキャプションもそれぞれに対応する名前にします。



次にボタンですが、どこまで実装するかによって数が変わってきますね。

基本的なところでは、「登録」ボタンと「検索」ボタンがあればいいでしょう。

今回はこれにプラスして「クリア」ボタンと「削除」ボタンも実装する事にします。



それぞれの役割としては、

・登録------エディットボックスに登録したデータをテーブルに保存する。

・検索------エディットボックスに入力したキーを元に検索を行なう。

・クリア----エディットボックスの内容をクリアする。

・削除------現在表示しているデータをテーブルから削除する。

となります。



これらをお好みで配置しましょう。





じゃ、今回はここまで。

次回は入力データの登録を。

(  ̄^ ̄)/



参考

MFCを学ぶ:謎のホームページ
よし。

HSPだけじゃなく、VC++も覚えよう。



と、言う事で、HDDの肥やしになっていたVC++を引っ張り出してきて、勉強中です。



さてさて、どこかに参考になるサイトは無いかな、と。



Visual C++講座



ここが良いな。

いろんな"HelloWorld"があるなぁ。

簡単そうだけど参考になりそうだ。



--コーディング中--



よし。

Gまで出来たぞ。



VC++って、変数は一番最初に宣言しないといけないんですね。

面倒だな。



今回学習した事:

メンバ変数の宣言の仕方。

ClassWizardの使い方。

リソースの作り方。

関数の使い方。

クラスの作り方。

座標の指定。

色の指定。



これだけ出来ればテキストシューティングが作れそうです。
残念なことにと言うか、当然の結果と言うか、一次審査落ちでした。

せめてゲームとしての体裁はとらないとお話になりませんでした。

やはり中途半端なものではだめですね。


よし、次は何をつくろうかな。
タブブラウザ。

IEのコンポーネントを使っているのでIEが無いと動きません(たぶん)
社内のWebツールがIEにしか対応していないので、このソフトを使ってます。

他のタブブラウザと比較しても相当軽いと思います。
マウスジェスチャーが使えるのも魅力的。

Donutは色々なシリーズがリリースされています。
Donut家系図

Donutの本家はここみたいです。

ちなみに私はDonutQユーザーです。
一応参考までに。
スクラップブックツール。
情報蓄積に。

ウェブ巡回中に気に入ったページをドラッグ&ドロップで簡単取り込み。
.txtや.html形式で保存。

テキストエディタとしても機能するので、結構重宝します。
ただ取り込んだページの更新はされないので、すでにFIXしたページを取り込みの対象としたほうが良いようです。

リンク:
Kamilabo.jp
紙Copiダウンロード
作者:InfoMaker
Web自動巡回ツール
シェアウェア(1,650円)
試用あり(30日)
OS:Windows XP/Me/2000/98
オススメ度:★★★★★


RSS/Atom/GMail/iBlogに対応したニュースリーダーです。


アメブロに閉じた場合、『読者になるにはアレだけど、動向を見守っていたいな~。』と言うような微妙な心境のときや、読者通知したくない恥ずかしがり屋さんは、このHeadline-Readerを利用すると良いでしょう。
相手に読者になった事がバレません。
(伝えた方が何かとよろしいとは思いますが)
私の場合、職場にRSS対応の社内情報共有サイトがあるので、その更新チェックに重宝しています。


指定した間隔で登録したURLを自動巡回し、更新状況を取得して一覧表示してくれます。
更新日も取得してくれるので、一覧にしたときに更新頻度が一目でわかります。


また、ツリー構造で自分で好きなようにジャンル分けをする事が出来るので、読者が増えてきた方はHeadline-Readerで一度読者の整理をしてみてはいかがでしょうか?


ちなみに、デフォルトで数十のURLが登録されているので、何か新しい発見があるかもしれませんね。(私はこのHeadline-Readerでアメーバブログの存在を知りました。)


リンク:
RSSリーダー Headline-Readerの紹介
タブブラウザ。
RSSリーダー付。

IEがいい加減信用ならないので別のブラウザに乗り換えようと思ったところに出会いました。

とりあえず名前が気に入ったので、現在デフォルトのブラウザとしてがんばってます。

が、しかし、ローカルフォルダの深いところにある.htmlファイルを読み込めないんですよね。
なんでだろう。
設定がおかしいのか?
日本語名ファイルは却下?

あと、重めなので、ロースペックのマシンだとちょっとキツイです。

リンク:
Firefox Central
Firefoxダウンロード
ユーザー登録したは良いのですが、ブログタイトル"NullPointerException"の通り、正に"何も無い"状態が長く続いてしまいました。
特に何の目的も無くふらっと登録したので、まあ、当然の成り行きかな、と。

強いて登録の理由を挙げるとすれば、"渋谷ではたらく社長のblog"の読者だからでしょうか。

タイトルと内容が正にぴったり(更新してないだけですが)だなあ、と思い、今日久しぶりにログインして、一人樮笑んでいます。
期せずして気の利いた洒落が出来上がったと、自己満足に浸れました。

ですが、有り難い事に、これまた期せずして我がブログに読者が付いており、読者がいる以上更新しないわけにもいかないので、ロースタートながらぼちぼち駄文を綴っていこうと、筆(マウス?)を取った次第です。

現状唯一の読者の方の期待に添えるかは分かりませんが、遅まきながらよろしくお願いします。
7月1日から11月1日にかけて応募が行われていた、HSPというスクリプト言語のコンテストに応募してみました。

ご存知の方も多いと思いますが、HSPについて少し紹介させてもらいます。

HSPとは、「Hot Soup Processor」の略称で、おにたま氏の開発したインタプリタ型のスクリプト言語で、豊富かつ直感的に解り易い命令セットで、付属のエディタにコードを記述することによって多彩なプログラムを組むことが出来ます。
また、DirectX・3D・C/Sに対応しており、使う人のニーズに合わせて幅広いアプリケーションを作成することが出来ます。

C++やJavaに見られるようなオブジェクト指向型ではなく、BASICに代表されるような、サブルーチンジャンプを多用したイベントドリブン方式で動作するので、プログラム未経験者でも取っ付き易いのではないでしょうか。
#事実(かどうかは分かりませんが)、小学生と思しき年齢の方ががコンテストに出品しています。

もちろん使い難い面もあります。
・ループ構造とサブルーチンジャンプを多用してしまうので、プログラムが煩雑になり易い(と私は感じます)。
・ネストレベルを意識する必要がある。
・追加モジュールを使用しないと浮動小数点が扱えない。
・四則演算の優先順位があいまい(これはバグのような気がしますが)。

しかし、これらを補って余りある利点があるので、すっかりHSPの虜です。

そして、この愛着あるHSPのコンテストがあると聞き、拙作ながら出品することとなったわけです。

作ったのはシューティングゲームなんですが、設計をすっ飛ばして行き成り作り始めたものですから、だいぶ支離滅裂な仕上がりになってしまいました。
その上応募期間内に完成することが出来ず、未完成のまま出品という体たらく。
マトモなプログラムを作りたかったらちゃんと事前設計しましょうね、という良い教訓です。

さてさて、現在HSPコンテストの主催者の方々が一次審査をしている最中です。
一次審査の結果発表は11月15日の予定ですので、今からどきどきしています。

あと4日。
「参加することに意義がある!」と割り切って結果を待ちましょう。

#ちなみに私の作品は一般部門のNo.453です。
#興味がおありでしたら試してやってください。

リンク:
HSPプログラムコンテスト2004オフィシャルホームページ
HSPオフィシャルホームページ
読み:たいぷでふ



C言語用語



Type Defineが語源。

Type(型)をDefine(定義)する。

型定義に用いられる。



■型定義

typedef 型 識別子;



--スタブ--