アプリ版:「スタンプのみでお礼する」機能のリリースについて

ただいま、Turbo C++ 2006 を使っているのですが、
以下のコードを簡略化するような処理はありますでしょうか?

Edit1->Text = ini->ReadString("String", "Edit1","");
Edit2->Text = ini->ReadString("String", "Edit2","");
Edit3->Text = ini->ReadString("String", "Edit3","");
Edit4->Text = ini->ReadString("String", "Edit4","");
Edit5->Text = ini->ReadString("String", "Edit5","");

検索はしてみましたが、どうも検索の仕方が下手で、
なかなかいいページが見つかりませんでした・・・。

A 回答 (4件)

FindComponentを使います。



TEdit *ed;

#define NUM 5
for ( int i=0; i < NUM ; i++ )
{
 ed = dynamic_cast<TEdit *>(FindComponent("Edit" + IntToStr(i + 1)));
 ed->Text= ini->ReadString("String", "Edit" + IntToStr(i+1) ,"");
}

こんなもんんでどうでしょうか。(チェックしていません。ケアレスミスはご容赦を)
    • good
    • 0
この回答へのお礼

試しにやってみたところ、
上手くいきました!!

今後もなにかと使えそうで便利ですね。

コードも短くなり、けっこうスマートで
便利です・・・!

希望した通りの動作になり、大変便利だったので
良回答とさせていただきました!

回答、ありがとうございました!

お礼日時:2008/05/14 06:09

一桁くらいの行数なら簡略化しないほうがいいと思います。


もっと多い、または別のところでも頻繁に使うというなら、
マクロにするか、関数にするかですね。
前者は読みにくくなり、後者は処理速度がちょっぴり落ちます。
    • good
    • 0
この回答へのお礼

今回は、他のところでも多く
呼び出すつもりなので、
まとめられればいいな、と思っていました。

まとめるとなると、場合によっては
読みづらくなったり等色々とまた
違った点で不便になるかもしれないですね。

回答、ありがとうございました!

お礼日時:2008/05/14 06:05

私なら


Edit1~Edit5というような変数のつけ方はしないで
Edit[0]~Edit[4]
のように配列にします
これなら100個あってもループで簡単に書けますので
    • good
    • 0
この回答へのお礼

自分も、何かできることはないかな、と
配列の考えが浮かびましたが、
色々おかしくなってきたので、
とりあえずやめることにしたんです。

しかし、出来るところは配列を使ったほうが
便利な場面もありますね。

回答、ありがとうございました!

お礼日時:2008/05/14 06:02

いくらか簡略化(短縮化)したと思える修正ができるかもしれませんが、全体を見直すと、コードは複雑になるでしょう。

こういうコードが100行くらいあれば、簡略化して短くなる可能性は大きいですが、5行くらいだとメリットは得にくいですね。

ある処理が単純になったように見えても、それをフルに使いこなすには、内部構造の理解が必要になるのに似ています。なので短くなっても、コード読むのが難しくなり、「簡略化」にならないことがあります。

また、ある部分を簡略化しても、元にあった複雑さは消し去ることができず、他の部分に移動しただけということもあります。これを「複雑さ保存則」なんて言ったりします。

たぶん、期待するようなものは無いとおもいます。
    • good
    • 0
この回答へのお礼

なるほど・・・
やはり、ただコードを簡潔にすればいい、という
問題でもないみたいですね。

その場に応じてどの書きかたがいいかも
勉強していきたいと思います。

ありがとうございました!

お礼日時:2008/05/14 05:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!