ページ 11

住所録

Posted: 2009年1月09日(金) 15:37
by Haru
現在、VC++で住所録を作成中なのですが、
新規に登録名を追加する際に同じ名前の人のデータがあった場合
追加できない。と言うようにしたいのですが、
現在の方法では、同名のデータが発見できるところまでは出来るているのですが、
今のままだと、登録が2重になってしまったりなど、問題点が多く残っています。
また、初めてC++/CLI(で、良いのでしょうか?)で作成しているので
非常に見にくいソースだとは思いますが、ご容赦願います。

Re:住所録

Posted: 2009年1月09日(金) 15:41
by Haru
失礼しました。
追加ボタンの関数が、
button_Tuika_Click
同名を探す関数が、
SearchName
と、なっています。

Re:住所録

Posted: 2009年1月09日(金) 16:02
by Mist
SearchNameには戻り値があるのに使っていないのには何か理由があるんですか?

ザっとしか読めてないけど以下じゃダメなんでしょうか?
if (SearchName(this->fileName) == FALSE) {
  MessageBox::Show("既に登録済みです");
    return;
}

Re:住所録

Posted: 2009年1月09日(金) 16:05
by Mist
SearchNameの戻り値の条件がよくわからないですね。
SearchNameという関数名からすると、同名があればtrue、それ以外はfalseかと思ったけどそうじゃないみたいだし。
関数の仕様詳細コメントみたいなものは書かないのでしょうか?

Re:住所録

Posted: 2009年1月09日(金) 16:18
by Haru
>>SearchNameの戻り値の条件がよくわからないですね

はい。もともと本か何かで調べたものを、
少しだけ変えて更に使いまわしてたりしてるうちに私もよくわからなくなってしましました。

>>関数の仕様詳細コメントみたいなものは書かないのでしょうか?

なるほど・・・。そのようなコメントも書いたほうが良いですね。
これから、少しずつでも、身に付くように努力します!!

Re:住所録

Posted: 2009年1月09日(金) 16:31
by Mist
SearchNameを見直して同名があるときはtrue、それ以外はfalseを返すように作り変えてみてはいかがでしょうか。

私がコーディングする時は関数の最初に以下のようなコメント付けて、ソース読まなくても関数の処理内容が大まかにわかるようにしています。
//**********************************************************************************************************************
//
//  FunctionName    : (関数名)
//  Abstract        : (関数の処理内容)
//  Inputs          : (入力引数)
//  Outputs         : (出力引数)
//  Return          : (戻り値)
//  Notes           : (留意事項)
//
//**********************************************************************************************************************
//
//  Procedure(関数の処理内容詳細)
//      ..1  
//      ..2  
//      ..3  
//      ..4  
//
//**********************************************************************************************************************

Re:住所録

Posted: 2009年1月09日(金) 16:33
by Mist
熟練プログラマーに昇格したヽ(*゜▽゜)ノ バンザーイ♪

Re:住所録

Posted: 2009年1月09日(金) 16:40
by Haru
>>SearchNameを見直して同名があるときはtrue、
>>それ以外はfalseを返すように作り変えてみてはいかがでしょうか。

はい!!まず、それが近道ですね!!

>>私がコーディングする時は関数の最初に以下のようなコメント付けて、ソース読まなくても関数の処理内容が>>大まかにわかるようにしています。

参考になりますね・・・。
これなら確かにわかりやすそうですね!

>>熟練プログラマーに昇格したヽ(*゜▽゜)ノ バンザーイ♪

おめでとうございます!!
私はこんなレベルで上級者の称号が付いてしまっているので、
ハンドルの変更をしようか、考えていたのですが。。。
面倒なんでやめました!
名前を全て大文字にする程度なら混乱もしないし良いかなぁ。。。

#恐らく、今日から連休明けまで来れないので解決にします!!

Re:住所録

Posted: 2009年1月09日(金) 16:50
by Haru
>>#恐らく、今日から連休明けまで来れないので解決にします!!

完全に解決しました!!
ありがとうございました!!
Mistさんに指摘していただいた部分と、
this->report->Clear();
この1行を消すことでほぼ、完成しました!!