• 締切済み

iniファイルのデータ結合に関するフローチャートについて

こんにちわdio-dioです。 今回もお助けください。 質問の内容ですが、 VC++のMFCを用いて2つのiniファイルのデータを比較し照合して 新規のファイルを作成するプログラムを組みたいと思っております。 プログラム実行例ですが、一例はこうです <iniファイル(更新用)> 【テレビ】 朝=めざまし 昼=いいとも 夜=SMAP×SMAP <iniファイル(マスタ用)> 【テレビ】 朝=朝ズバ! 昼=いいとも 夜=めちゃイケ 深夜=くりぃむナントカ 【芸人】 司会者=タモリ 【芸能人】 男性=オダギリジョー 女性=伊東美咲 <iniファイル(新規)> 【テレビ】 朝=めざまし 昼=いいとも 夜=SMAP×SMAP 深夜=くりぃむナントカ 【芸人】 司会者=タモリ 【芸能人】 男性=オダギリジョー 女性=伊東美咲 となります。 そのためにまずはフローチャートを作成することに成りました。 そのフローチャートの書き方がよく分かりません。 今までフローチャートは書いたことはありますが、 今回はiniファイル専用のAPI関数があったりと今まで私が 経験したものよりも複雑で混乱しています。 どなたか知恵をお貸しいただけないでしょうか? シンプルに考えればいいとまわりからも言われているのですが、 性格上の問題でしょうか・・・うまくいきません。 簡単なことだよ!と対応できる方よろしくお願いいたします。

みんなの回答

  • luka3
  • ベストアンサー率74% (306/409)
回答No.4

処理の流れを考えればいいと思います。 今ある情報から考えると私ならこんなかんじでしょうか。 ・マスタをコピーして新規のファイル名にする →更新用のセクション名の一覧を取得する →セクションごとにキー名の一覧を取得する →キーごとに値を取得し、新規ファイルに書き込む (キー・セクションごとに繰り返し) セクションやキーの一覧の取得はGetPrivateProfileStringの第1や第2の引数をNULLにすることで取得できます。 一覧を取得したあとの処理がめんどくさそうですが、これが出来ればほぼ完成でしょう。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★フローチャートの書き方よりもアルゴリズムですよね。分からないのは。 >今までフローチャートは書いたことはありますが… ・という事は実装したときのコードをフローチャート風に変換すればいいだけですよ。  シンプルに考えればいいとは、iniファイル専用の API 関数を使うことを想定しないで  考えればよいという事です。 ・私ならば マスタ用 ini ファイルをすべてセクション単位で読み込みます。  セクションとは【テレビ】【芸人】【芸能人】をブロック単位で考えます。  決して行単位ではありません。セクションというブロック単位です。  そうするとメモリ上に【テレビ】【芸人】【芸能人】という3つのセクション単位で  読み込んだデータがある事になります。→メモリ上ではセクション単位で管理するわけ。 ・次に更新用 ini ファイルも同様にすべてセクション単位で読み込みます。  このとき、読み込むセクションが既に読み込んだセクション内にあるか調査します。  今回は【テレビ】セクションが既に読み込んだセクション内にあるため、既に読み込んだ  【テレビ】セクションを削除して、新しく読み込む【テレビ】セクションと置き換えます。  更新用 ini ファイルに複数のセクションがある場合も同様に繰り返せばよい。 ・また、マスタ用、更新用 ini ファイルをセクション単位で読み込んだ後はすべての  セクションを新規 ini ファイルに書き出せば処理は終了となります。  これをフローチャートに記述すればよい。 ・シンプルに考えればよいとは、上記のような単純な考えで良いという事でしょうね。 ・以上。参考に!

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

>>シンプルに考えればいいとまわりからも言われているのですが、 性格上の問題でしょうか・・・うまくいきません。 プログラムの世界に限りませんが、自分の頭で考えても、該当分野の素材(知識)が乏しいと、何も出てこないってことは多いと思います。実際、私も入社当時に、フローチャートの書き方やS/360のハードやOSの話を研修で学んでも、課題のCOBOLのプログラムの完成までには、長い時間が必要でしたし、できあがったプログラムは長くてわかりにくいものでした。 でも、しばらくして「構造化プログラミング」「複合設計」等の手法を書籍で知ってから、プログラムロジックの作成がスムーズにできるようになりました。 たぶん、質問の例は、STLコンテナのmapを使えば楽にできると思います。でも、もしかすると、質問者さんの場合、CとC++の書籍を数冊読んである程度の知識を補給しておかないと無理な気もします。 P.S. 会社では、プログラムの要求仕様書やテストケースなどをきっちりと作成できる方がいます。ある程度のソースも作れます。でも、ちょっと複雑な処理になると、仕様は書けても、コードに落とすことができないのです。「ここまで仕様書が書けるのだから、できるだろう?」と思ったことはありますが、半年かけてもできず、私が助っ人したことがあります。やはりなんらかの知識が彼に欠乏していたのだと思っています。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

MFCを使う必要がわからないけど、API関数(GetPrivateProfileXXXX/WritePrivateProfileXXXのことか?)は気にしなくていいでしょう。 フローチャートの構成要素としては「iniファイルを読み込む」とか「すべてのkeyについてループする」とか「keyが一致したらどうするか?」が必要なだけで、その実装部分(どうやって ini ファイルを読むか、とかすべてのkeyをどうやってループするか)は不要です。 コーディングする時点で Win32API じゃなくて別のライブラリを使ってファイルを読み書きするよう変更されるかもしれないしね。

関連するQ&A

  • 月9ドラマ

    20代後半の♀です♪ 今夏の月9ドラマは http://www.fujitv.co.jp/suppli/index2.html のようですね。 伊東美咲さんと亀梨和也君(KAT-TUN)が出演のようですが、私はイマイチ「見たいなぁ」って思うキャスト&内容でした。 みなさんはヒロイン&ヒーローがどんな俳優女優さんなら見てみたいですか? 私なら・・・松嶋菜々子さんとオダギリジョーさん!とか米倉涼子さん&妻夫木聡君とか。 最近の月9は何となく「ぱっ」っとしない感じで寂しいなぁ!!

  • 今年の26時間テレビは

    今年の26時間テレビは 終わりましたが、ずばり来年は誰に司会をやって欲しいですか? (1)3年連続、島田しんすけさん(ヘキサゴン) (2)さんまさん (3)たけしさん (4)所さん(世田谷ベース) (5)タモリさん(いいとも) (6)みのさん (7)SMAPの一人(SMAPSAMP) (8)名倉さん(ネプリーグ) (9)有野さん(ゲームセンターCX) (10)大塚さん(めざましテレビ) 複数回答可です。

  • 演技が下手だなぁと思う芸能人...

    最近ドラマを見ていて、びっくりするぐらい演技が下手な方っていませんか?? 怒りを通り越して呆れるというか…。見る気も失せるというか…。 (舞台役者さんと比べてみると一目瞭然だと思います。。) あ、でも逆に上手な方もたくさんいらっしゃると思います。 「素人のくせに…」というのをたまに耳にしますが、 演技をみせるのはあくまで素人にみせるのだから、 素人が判断しても何も問題ないと思います。 皆さんの思う、演技が上手・下手な芸能人は誰ですか?? 私としては、 上手な方は、豊川悦史さん・オダギリジョーさん・江口洋介さん・鈴木京香さんです。 下手な方は、長谷川京子さん・小雪さん・伊東美咲さん・成宮寛貴さんです。(モデル上がりに多い??) 他にもたーくさんいますが。。

  • フローチャートの結合子

    条件分岐したあと帰ってくる場所が同じになるところが複数あり、全部矢印で示すと煩雑になるのですが、こういった場合は結合子の記号に同じ物を使ってもいいのでしょうか。 使用例を検索してみましたが、一対一で使っている例しか見当たりませんでした。 例えばこういった感じに使えるのでしょうか。(かっこが結合子を表すものとします) (1) ↓ <条件分岐>→[処理]→(1) ↓ [処理] ↓ (1)

  • INIファイルからのデータ読込みについて

    表題の実現方法について、どうしてもわからなかったので、質問を挙げさせていただきます。 会社から、INIファイルの内容を読み込んで、初期値設定に利用するように指示があり、実現方法がわからず、非常に困っています。 ライブラリを購入せずに、対応したいです。 どなたか、本内容にお詳しい方、ご教授下さい。 ◆開発環境 言語:C OS:Linux(Ubuntu 9.10) IDE:eclipse コンパイラ:gcc 4.4 ◆質問 1.セクションで区切られたIniファイルを読み込み、読み込んだデータを各種変数に格納したい。 《想定Iniファイル》 Test.ini [NETWORK] IPADDR=192.***.***.***.*** → char *IPADDRに格納したい PORT=****            → long PORTに格納したい [PRM1] Anum=***             → char *Anumに格納したい Bnum=***             → char *Bnumに格納したい Cnum=***             → char *Cnumに格納したい [PRM2] TIME1=**** TIME2=**** 2.上記1の処理を関数とし、main関数からコールして、mainプログラムの起動時にINIファイル内容を読み込みたい。

  • VB6.0でINIファイルからデータを読み込みたいです

    INIファイルからPCのモニターとフォームサイズデータの比率を読み込み、そのデータを元にフォームを画面を呼び出したいのですが、どの様にしてよいかがわかりません。申し訳ありませんが教えていただけないでしょうか?? ちなみにINIファイルのデータを読み込み、ボタンに名前を表示するといったことはできました。

  • iniファイル

    INIファイルはどうやって使うのでしょうか? 使用用途があまりよく分かりません。 iniファイルはどの言語でも使用可能なのでしょうか?

  • INIファイル

    CでDBに接続しています。 そのDB接続のIDやPWDをINIから取得したいのです。 どのような関数を使ったらよいのでしょうか? シロートなのでできるだけ分かりやすくお願いします。

  • iniファイル

    すみません。教えてください。 拡張子(ini)のファイルは、どんな性格のデーターですか? どうぞよろしくお願いします。

  • iniファイルを書き換えないと使いづらいと聞いた

    phpを使うためにxamppをインストールしたら、 iniファイルを書き換えないと使いづらいと聞いたのですが どのファイルでしょうか? http://www.adminweb.jp/xampp/php/index2.html のように、php.iniでしょうか? http://www.adminweb.jp/xampp/mysql/index4.html のように、my.iniでしょうか? それとも http://qiita.com/guzuri/items/643c1311224e8d482278 のように、どちらもでしょうか?

    • ベストアンサー
    • PHP