C# Foreach文を使用してのINIファイルの項目を取得 – プログラミング – Home

C# Foreach文を使用してのIN...
 
通知
すべてクリア

[解決済] C# Foreach文を使用してのINIファイルの項目を取得


C#初心者
 C#初心者
(@C#初心者)
ゲスト
結合: 22年前
投稿: 29
Topic starter  

再びお世話になります。Visual Studio 2005 C#です。

現在、INIファイルの項目を取得してListViewへ表示させるものを作成しています。

----Test.iniの中身----

[test]
1=ああああ
2=いいいい
3=うううう



---------------------

StringBuilder Koumoku = new StringBuilder(1024);

string[] GetKoumoku = new string[20];

for(int Cnt = 1; Cnt < 20; Cnt++)
{
string Key = Cnt.ToString();

GetprivateProfileString(test,Key,",Koumoku,(unit)
Koumoku.Capacity,C:\test.ini);

GetKoumoku[Cnt] = Koumoku.ToString();

}

としてFor文で20回回してIniファイルの情報を配列に格納しています。

やりたいことはIniファイルのキーが動的に増えていく(1,2,3,4,5・・・)
ので20回回すのではなくIniファイルのキー分ループさせて値を取得したい
と考えています。

Foreach文を上手く使用できれば出来ると思いましたが・・・。すみませんが
上記のFor文をForeach文に書き換えてIniファイルのキー分の中身を読むよう
なサンプルコードを記載して頂けないでしょうか。


引用未解決
トピックタグ
C#
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>再びお世話になります。Visual Studio 2005 C#です。
いた違いでは?

C#の質問は
http://rararahp.cool.ne.jp/cgi-bin/lng/dotnet/dotnetlng.cgi
でどうぞ。

ちなみに GetPrivateProfileSection てな関数もあります。
VC++の類似過去ログ
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200607/06070063.txt


返信引用
C#初心者
 C#初心者
(@C#初心者)
ゲスト
結合: 22年前
投稿: 29
Topic starter  

Blueさん

返信ありがとうございます。情報が不足しておりました・・。

View側はC#ですがDocumentはC++で作成しているのでこちらの
板で質問させて頂きました。

過去ログ等にも同じようなスマートに処理する質問が記載
されていましたが複雑そうに書いてありました。Foreachで
簡単に出来そうだと思いましたが甘くはないですね。


返信引用
アキラ
 アキラ
(@アキラ)
ゲスト
結合: 23年前
投稿: 49
 

無限ループして、GetprivateProfileStringが失敗するまで
キーをカウントアップしてみてはいかがでしょう
それかキー数のキーを用意するか


返信引用
FUKU
 FUKU
(@FUKU)
ゲスト
結合: 17年前
投稿: 73
 

GetPrivateProfileSectionをP/Invokeするのもありかもです


返信引用
Wood
 Wood
(@Wood)
ゲスト
結合: 23年前
投稿: 895
 

板違いと勘違いされないために一言、いわせてね

質問したいC++のバージョン情報は正確に示しましょう
C#2005から呼び出せるものは
C++2005だけではありません
・NETフレームワークを介して呼び出されるだろうから
そう言った実行環境も必要じゃないですかね

又、MFCを使っているのかAPIのみなのか

C++の質問なのだから
C#の~と言う質問の仕方はルール違反と思いませんか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>過去ログ等にも同じようなスマートに処理する質問が記載
>されていましたが複雑そうに書いてありました
やはりキーの数もとっておいたほうが簡単だと思うのですが。

そもそも、iniファイル自体、.NET Framework ではまったくライブラリがない(と思う)
ものなので、向いていないものなのではないかと思っています。
→foreachでできる構文はないのでは?
(これから作るものであえてiniファイルを使うべきではないような。)
参考) http://www.atmarkit.co.jp/fdotnet/dotnettips/039inifile/inifile.html

あえてforeachを使うとなると、GetPrivateProfileSectionでキーを配列に入れるぐらい
しか思いつかないです。
(結局逆に複雑になるため、foreachを使う利点などないかな。)


返信引用
匿名
 匿名
(@匿名)
ゲスト
結合: 1秒前
投稿: 0
 

皆様、いろいろなアドバイスありがとうございました。

いろいろ検討しましたがキーの数を先に取得してキーの数分
For文で回すようにしてなんとか出来ました。Foreachでは出
来なさそうですね(^^);

C++の掲示板ですので今後はC#の掲示板で質問させて頂きたい
と思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました