こんにちわdio-dioです。
今回もお助けください。
質問の内容ですが、
VC++のMFCを用いて2つのiniファイルのデータを比較し照合して
新規のファイルを作成するプログラムを組みたいと思っております。
プログラム実行例ですが、一例はこうです
<iniファイル(更新用)>
【テレビ】
朝=めざまし
昼=いいとも
夜=SMAP×SMAP
<iniファイル(マスタ用)>
【テレビ】
朝=朝ズバ!
昼=いいとも
夜=めちゃイケ
深夜=くりぃむナントカ
【芸人】
司会者=タモリ
【芸能人】
男性=オダギリジョー
女性=伊東美咲
<iniファイル(新規)>
【テレビ】
朝=めざまし
昼=いいとも
夜=SMAP×SMAP
深夜=くりぃむナントカ
【芸人】
司会者=タモリ
【芸能人】
男性=オダギリジョー
女性=伊東美咲
となります。
そのためにまずはフローチャートを作成することに成りました。
そのフローチャートの書き方がよく分かりません。
今までフローチャートは書いたことはありますが、
今回はiniファイル専用のAPI関数があったりと今まで私が
経験したものよりも複雑で混乱しています。
どなたか知恵をお貸しいただけないでしょうか?
シンプルに考えればいいとまわりからも言われているのですが、
性格上の問題でしょうか・・・うまくいきません。
簡単なことだよ!と対応できる方よろしくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
処理の流れを考えればいいと思います。
今ある情報から考えると私ならこんなかんじでしょうか。
・マスタをコピーして新規のファイル名にする
→更新用のセクション名の一覧を取得する
→セクションごとにキー名の一覧を取得する
→キーごとに値を取得し、新規ファイルに書き込む
(キー・セクションごとに繰り返し)
セクションやキーの一覧の取得はGetPrivateProfileStringの第1や第2の引数をNULLにすることで取得できます。
一覧を取得したあとの処理がめんどくさそうですが、これが出来ればほぼ完成でしょう。
No.3
- 回答日時:
★フローチャートの書き方よりもアルゴリズムですよね。
分からないのは。>今までフローチャートは書いたことはありますが…
・という事は実装したときのコードをフローチャート風に変換すればいいだけですよ。
シンプルに考えればいいとは、iniファイル専用の API 関数を使うことを想定しないで
考えればよいという事です。
・私ならば マスタ用 ini ファイルをすべてセクション単位で読み込みます。
セクションとは【テレビ】【芸人】【芸能人】をブロック単位で考えます。
決して行単位ではありません。セクションというブロック単位です。
そうするとメモリ上に【テレビ】【芸人】【芸能人】という3つのセクション単位で
読み込んだデータがある事になります。→メモリ上ではセクション単位で管理するわけ。
・次に更新用 ini ファイルも同様にすべてセクション単位で読み込みます。
このとき、読み込むセクションが既に読み込んだセクション内にあるか調査します。
今回は【テレビ】セクションが既に読み込んだセクション内にあるため、既に読み込んだ
【テレビ】セクションを削除して、新しく読み込む【テレビ】セクションと置き換えます。
更新用 ini ファイルに複数のセクションがある場合も同様に繰り返せばよい。
・また、マスタ用、更新用 ini ファイルをセクション単位で読み込んだ後はすべての
セクションを新規 ini ファイルに書き出せば処理は終了となります。
これをフローチャートに記述すればよい。
・シンプルに考えればよいとは、上記のような単純な考えで良いという事でしょうね。
・以上。参考に!
No.2
- 回答日時:
>>シンプルに考えればいいとまわりからも言われているのですが、
性格上の問題でしょうか・・・うまくいきません。
プログラムの世界に限りませんが、自分の頭で考えても、該当分野の素材(知識)が乏しいと、何も出てこないってことは多いと思います。実際、私も入社当時に、フローチャートの書き方やS/360のハードやOSの話を研修で学んでも、課題のCOBOLのプログラムの完成までには、長い時間が必要でしたし、できあがったプログラムは長くてわかりにくいものでした。
でも、しばらくして「構造化プログラミング」「複合設計」等の手法を書籍で知ってから、プログラムロジックの作成がスムーズにできるようになりました。
たぶん、質問の例は、STLコンテナのmapを使えば楽にできると思います。でも、もしかすると、質問者さんの場合、CとC++の書籍を数冊読んである程度の知識を補給しておかないと無理な気もします。
P.S.
会社では、プログラムの要求仕様書やテストケースなどをきっちりと作成できる方がいます。ある程度のソースも作れます。でも、ちょっと複雑な処理になると、仕様は書けても、コードに落とすことができないのです。「ここまで仕様書が書けるのだから、できるだろう?」と思ったことはありますが、半年かけてもできず、私が助っ人したことがあります。やはりなんらかの知識が彼に欠乏していたのだと思っています。
No.1
- 回答日時:
MFCを使う必要がわからないけど、API関数(GetPrivateProfileXXXX/WritePrivateProfileXXXのことか?)は気にしなくていいでしょう。
フローチャートの構成要素としては「iniファイルを読み込む」とか「すべてのkeyについてループする」とか「keyが一致したらどうするか?」が必要なだけで、その実装部分(どうやって ini ファイルを読むか、とかすべてのkeyをどうやってループするか)は不要です。
コーディングする時点で Win32API じゃなくて別のライブラリを使ってファイルを読み書きするよう変更されるかもしれないしね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- 会社・職場 旦那と意志疎通できなくなりました。 1、金曜日の朝までに書いて提出しないといけない書類があります。カ 5 2022/12/13 23:45
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- PDF PDFに精通した方に質問。JPEGファイル群を一つのPDFファイルにするときの容量変化について 6 2023/07/23 19:06
- その他(社会・学校・職場) 業務内容についてどう思いますか? 私は客先の仕事を下請けとして行うという仕事をしていますが、(客先の 2 2022/05/04 16:17
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
SGファイルって何ですか?
-
CSVファイルへの保存の際、デー...
-
「VBScript」ADODB.Streamにお...
-
マウスポインタの変更
-
分割コンパイルの#defineについて
-
バッチで118項目のCSVを処理し...
-
[VBScript]ファイルの入出力を...
-
VB6でのファイル作成方法
-
VBに、Cのincludeのようなもの...
-
大きいサイズのテキストファイ...
-
fopenできる上限の変更
-
同じ名前のファイルを作った場...
-
■ 移植性のないポインタ変換に...
-
プログラムで文字をBMPファイル...
-
C言語のfopenについて教えてく...
-
CSVファイル
-
Javascript で INI の読み書き
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
csvファイルを開かずに文字を検...
-
ファイル名の先頭にアンダース...
-
CSVファイルへの保存の際、デー...
-
ファイルを記録してあるセクタ...
-
テキストファイルの最終行を削...
-
SGファイルって何ですか?
-
ドラッグアンドドロップでファ...
-
分割コンパイルの#defineについて
-
VBに、Cのincludeのようなもの...
-
fopenできる上限の変更
-
グローバル変数のよくない使い...
-
ファイルの結合
-
大きいサイズのテキストファイ...
-
iniファイルに追記がしたいです。
-
バッチで118項目のCSVを処理し...
-
ハッシュの計算時間について
-
C言語のfopenについて教えてく...
-
Javascript で INI の読み書き
-
Excelマクロでの再読込み方法
おすすめ情報