• ベストアンサー

ソースコードの簡略化

ただいま、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",""); 検索はしてみましたが、どうも検索の仕方が下手で、 なかなかいいページが見つかりませんでした・・・。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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) ,""); } こんなもんんでどうでしょうか。(チェックしていません。ケアレスミスはご容赦を)

repop
質問者

お礼

試しにやってみたところ、 上手くいきました!! 今後もなにかと使えそうで便利ですね。 コードも短くなり、けっこうスマートで 便利です・・・! 希望した通りの動作になり、大変便利だったので 良回答とさせていただきました! 回答、ありがとうございました!

その他の回答 (3)

  • tokichim
  • ベストアンサー率42% (88/205)
回答No.3

一桁くらいの行数なら簡略化しないほうがいいと思います。 もっと多い、または別のところでも頻繁に使うというなら、 マクロにするか、関数にするかですね。 前者は読みにくくなり、後者は処理速度がちょっぴり落ちます。

repop
質問者

お礼

今回は、他のところでも多く 呼び出すつもりなので、 まとめられればいいな、と思っていました。 まとめるとなると、場合によっては 読みづらくなったり等色々とまた 違った点で不便になるかもしれないですね。 回答、ありがとうございました!

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

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

repop
質問者

お礼

自分も、何かできることはないかな、と 配列の考えが浮かびましたが、 色々おかしくなってきたので、 とりあえずやめることにしたんです。 しかし、出来るところは配列を使ったほうが 便利な場面もありますね。 回答、ありがとうございました!

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

いくらか簡略化(短縮化)したと思える修正ができるかもしれませんが、全体を見直すと、コードは複雑になるでしょう。こういうコードが100行くらいあれば、簡略化して短くなる可能性は大きいですが、5行くらいだとメリットは得にくいですね。 ある処理が単純になったように見えても、それをフルに使いこなすには、内部構造の理解が必要になるのに似ています。なので短くなっても、コード読むのが難しくなり、「簡略化」にならないことがあります。 また、ある部分を簡略化しても、元にあった複雑さは消し去ることができず、他の部分に移動しただけということもあります。これを「複雑さ保存則」なんて言ったりします。 たぶん、期待するようなものは無いとおもいます。

repop
質問者

お礼

なるほど・・・ やはり、ただコードを簡潔にすればいい、という 問題でもないみたいですね。 その場に応じてどの書きかたがいいかも 勉強していきたいと思います。 ありがとうございました!

関連するQ&A