• ベストアンサー

iniファイルのセクションについて

おはようございます。matsuhiraです。 今回の質問はiniファイルについてです。 iniファイルのセクションだけを取得する方法はありますか? 知っている方協力をお願いします。

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

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

★セクションだけの取得とは? ・セクション名だけの列挙を行いたいのですか?  それともセクション内のすべてのキーを丸ごと取得したいのですか?  あと Win.ini と任意の ini ファイルのどっち? ・関連する ini ファイルの取得関数を紹介すると  GetPrivateProfileSection()  GetPrivateProfileSectionNames()  GetProfileSection()  の3つですかね。 サンプル: TCHAR szBuff[ 32768 ]; DWORD dwRet; // セクション名だけの列挙 dwRet = GetPrivateProfileSectionNames( szBuff, sizeof(szBuff), TEXT("application.ini") ); if ( dwRet < -2 ){  /* szBuff のサイズが足りませんでした */ } その他: ・szBuff の内容は NULL 文字で区切られた複数の文字列が格納されています。  そして、最後に全体の終端を表す NULL 文字が1つ付いています。  よって、szBuff の終端は NULL 文字が2つ存在することになります。 ・以上。下の『参考URL』をどうぞ。

参考URL:
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpsysinf/html/_win32_getprivateprofilesectionnames.asp
matsuhira
質問者

お礼

Oh-Orangeさん、回答ありがとうございました。 このサンプルプログラムがきちんと動作しました。 TCHAR型やDWORD型などわからないこともありましたが、 独自で調べて勉強します。 1000ポイントあげたいけど、無理だから20ポイントで許してね (大多笑)。 本当に感謝してます。ありがとうございました(真面目)。

その他の回答 (1)

  • FAY
  • ベストアンサー率49% (95/193)
回答No.1

GetPrivateProfileSectionNames(略) 詳しくはMSDNをどうぞ。

関連するQ&A

  • VB2008 iniファイルの指定セクション内の値のみを取得

    VB2008 iniファイルの指定セクション内の値のみを取得 VB2008でiniファイルの読込みを行いたいと思っています。 指定セクション内の値のみを取得したいのですが、自分の知る限りではキー名も一緒についてきて しまいます。 簡単に値のみを取得する方法を助言いただきたいと思います。 自分が検討した一番近かった方法は、GetPrivateProfileSection関数を使用し、キー名と値を取得。 ↑ただし、キー名はいらない。 関数で出来ればいいのですが、出来なければ、プログラミングで値のみを抜き取る方法でもいいので なるべく簡単な方法を宜しくお願いします。   

  • VB2008 iniファイルの全セクション取得方法

    こんばんわ。iniファイルの全セクションを取得したく、 以下のコードを使うことはわかったのですが、ここから先がVB初心者の為全く解かりません。ボタン1を押したらC:\Test.ini のファイルの全セクションを取得というコードはどのように記入すればよいのでしょうか。 どうぞ宜しくお願いいたします。 Declare Function GetPrivateProfileSectionNames Lib "Kernel32.dll" _ Alias "GetPrivateProfileSectionNamesA" _ (ByVal lpszReturnBuffer As String, ByVal nSize As Long, _ ByVal lpFileName As String) As Long

  • iniファイルの全セクションを取得し、ListBoxのitemにするには?VB2008

    こんにちは。VB2008を使用しています。 「Formロード時にiniファイルの全セクションを取得し、セクション1つずつをlistboxの項目にする」 という流れのコードを作成したいのですが、うまくいきません。 似たような質問などを調べてつぎはぎしてみたものの、うまく理解できなく困っています。 以下、現在記述中のコードです。 'APIの宣言 Declare Function GetPrivateProfileSectionNames Lib "Kernel32.dll" _ Alias "GetPrivateProfileSectionNamesA" _ (ByVal lpszReturnBuffer As string, ByVal nSize As Integer, _ ByVal lpFileName As String) As String 'form1ロード時 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim listboxsec As String Dim listboxitem() As String listboxsec.Capacity = 256 GetPrivateProfileSectionNames(listboxsec, 256, "./FileTest.ini") listboxitem = Split(listboxsec, "\") End Sub 最初の全セクションの取得方法がイマイチ分からない状況です。iniファイルは実行プログラムと同じ場所においてあります。 取得したセクションをSplitで配列に分け、for文でlistboxに追加していこうかと考えています。 どのような記述をすればいいのか、ご教示お願いいたします。

  • 独自INIファイルの操作をしたいんですが

    phpでaaa.iniの操作をしたいのですが 例えば [section] key1=aaaaa の「aaaaa」を書き換えたいのです。 (力量不足もありますが) 項目が複数あるので単純なfwriteでは対応できそうになく 出来れば win32apiのWritePrivateProfileStringのような 動かし方が出来ればいいのですが 読み込みは parse_ini_fileで出来そうなのですが 更新の方は方法が見つからなくて よろしくお願いします。

    • ベストアンサー
    • PHP
  • iniファイルについて

    パソコンを立ち上げる度に下記の表示が出現します。 【検索コントロールの初期化に失敗しました。 iniファイルがありません。】 (パソコンはウインドウズ7の32ビットです) 最近あまり身に覚えのないプログラムファイルを色々と削除したのですがその中に必要なファイルがあったのかもしれません。 iniファイルが存在しないと、どの様な不便があるのかすら分らない素人です。 またiniファイルを取得する方法も分りません。 どうか上記記述の影響と表示が出なくするにはどうしたら良いのか、パソコンに無知な私にも理解出 来るよう教えて頂きたく宜しくお願い申し上げます。

  • 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ファイル内容を読み込みたい。

  • INIファイルの読込みについて

    VB2005を使用しています。 INIファイルを読み込む関数で、GetPrivateProfileStringとGetPrivateProfileIntがありますが、この二つは文字列用、数値用と、なんとなく曖昧に憶えておりました。VBでINIファイルを読み込んだ場合、どちらも文字列、数値として取得できてしまうのですが、1つのプロジェクトでこれらを使い分ける意味はあるのでしょうか? できれば一つの関数で読込みを統一したいと思うので。。。 使い分ける意味があるとしたら、その理由についてもできれば教えてください。宜しくお願いいたします。

  • VC++でのiniファイルの読み書き

    今Visual Studio 6.0 Professional Editionを使用して開発を行っています。 そこでiniファイルの読み書きを行う必要があるのですが、ほんとに初心者でどのようにすればいいのかわかりません。 そこで皆さんの知恵をお借りしたいのですが、 サンプルプログラムや役に立つサイトなどを教えていただきたいのです。 やることとしてはiniファイルからデータを読む。 プログラム中のデータをiniファイルの特定のセクションのキーに書き込むです。 よろしくお願いします。

  • iniファイルの書き換え

    いつもありがとうございます。 今回は、iniファイルの書き換えについて質問させてください。 mysqlとphpのiniファイルの書きかえをしたいのですが、たとえば ;mb_string=auto を mb_string=utf-8 (実際にこんな記述があるかは別として) という書き換えを、スクリプトファイルを実行することで実現したいのですが、方法がよくわかりません。 google様で検索しても、応用できそうな記述が見当たらなくて・・・(自分の知識不足なのは間違いないのですが) よろしくお願いします。

  • iniファイルとの比較(iniファイル操作)

     初めまして私はVB6.0の初心者でVB6.0について勉強しています。現在以下のようなiniファイル操作について分からないことがあります。 ・プログラム内容 テキストボックスにログインID(例えばenshu)を入力しOKボタンを押して、iniファイル(例えばrenshu.ini)にある情報と照合してもしiniファイルに無かったら「ログインできません」というメッセージボックスを出すプログラム。 条件 ・ フォームにテキストボックス(Text1.Text)とコマンドボタン(OKボタン)がある ・ Iniファイルの形式(renshu.ini) IDNO(セクション名) OK_ID(キー名)1 = “enshu”(ログインID) OK_ID(キー名)2 = “ren”(ログインID) OK_ID(キー名)3 = “shu”(ログインID) 上のような形式が不特定多数ある ・ Iniファイルの保存場所 c:\work\renshu.ini 私の場合以下のように書きました。 Private Sub OK_Click() 'OKボタンがクリックされたら If  Text1.Text <> GetIniString("IDNO", "OK_ID", "c:\work\renshu.ini") Then '入力したログインIDがiniファイルに無い場合 'メッセージ表示 MsgBox "ログインできません" End If End Sub としましたがメッセージボックスが表示されません。なぜなのでしょうか。教えてください。宜しくお願いいたします。