よもやまのC#時折CPP

MFC,C# .Net,CPP,and ....

目次

Blog 利用状況

ニュース

わんくま同盟

わんくま同盟

投稿カレンダー

iKnow始めました

書庫

日記カテゴリ

For eachに感謝(汗

MFCでXMLファイルにて
子要素ノードを処理する場合・・
IXMLDOMNodePtr pKoDomoNode = pNode->GetfirstChild();
while (pKoDomoNode!= NULL) {
  pKoDomoNode = pKoDomoNode ->GetnextSibling();
}

なのが
C++.NetC++/CLIで
  for each( XmlNode^ KoDomoNode in OyaNode->ChildNodes) {
   String^ NodeName =  KoDomoNode->Name;
   MessageBox::Show( NodeName, "ReadAppEnv KoDomoNode");
  }
C++.NetC++/CLIもVBに感化(?)されたのか本当感謝感激です。
[追加]
Visual C++ Version 6.0にはなくVB6にはfor each文があってうらやましく思ったときもありました・・


POSITION pos = xxx.GetHeadPosition();
while(pos) {
    xxx = xxx.GetNext(pos);
}
CListやCArrayでお世話になってたこんな処理もすっきりしそうです。

投稿日時 : 2007年9月1日 12:46

コメントを追加

# re: For eachに感謝(汗 2007/09/02 0:28 pinkuma

C++.Net ってなんですか?
C++/CLI のことですか?

# re: For eachに感謝(汗 2007/09/02 1:18 よもやま

C++/CLIの事です。
まぎらわしい表現を使ってしまいすいません。

# re: For eachに感謝(汗 2007/09/02 5:40 渋木宏明(ひどり)

MFC ってなんですか?
xxxPtr が VC++ の「コンパイラ COM サポート」機能によって作成されたスマートポインタクラスであるなら、MFC とは無関係です ;-)

# re: For eachに感謝(汗 2007/09/02 10:44 よもやま

ご指摘ありがとうございます。

VB6では、xxxPtrは意識せずとも
for each in ~Next文で囲んで処理できます。

私が感激した点というのは、
COMサポート機能とか意識しなくても
シンプルな方法でコレクション要素を追跡できる処理がコーディングできる点です。

説明不足大変申し訳ありませんです。

# re: For eachに感謝(汗 2007/09/03 11:30 とっちゃん

XMLの部分は、_com_ptr_t なので、MFCとは無関係ですねw
#っていうか、MFCにはXMLサポートは用意されていないw

最後のPOISITION pos = ... の部分は、MFC なコードですがw
あれはあれであんまり使いやすいものではなかったり...w

# re: For eachに感謝(汗 2007/09/03 23:53 よもやま

>XMLの部分は、_com_ptr_t なので、MFCとは無関係ですねw
ご指摘ありがとうございます。

渋木宏明(ひどり) さんとっちゃんさんのおっしゃる通り
MFCにXMLサポートはありませんです。

>最後のPOISITION pos = ... の部分は、MFC なコードですがw
CTypedPtrList←こいつを使ったデータのコピーとか・・
どらかしこの関数内に・・
POSITION pos = xxx.GetHeadPosition();
がちりばめられ・・・
心の中で「あちらこちらで頭出しか・・」

タイトル  
名前  
URL
コメント