• ベストアンサー

設定ファイルの読み込み方法について

rallyの回答

  • ベストアンサー
  • rally
  • ベストアンサー率28% (32/111)
回答No.1

VB5 での経験しかないのですが、VB6 はもっと便利なのかな? 設定ファイルの読みこみ、書きこみを行なうAPI関数が用意されています。 GetPrivateProfileString WritePrivateProfileString この関数で、任意の設定ファイルの読み込み、書きこみができます。 使う場合には、適当な場所に以下で宣言しておかなければなりません。 Declare Function GetPrivateProfileString Lib "kernel32"_ Alias "GetPrivateProfileStringA" (ByVal lpApplicationName_ As String, ByVal lpKeyName As Any, ByVal lpDefault As String,_ ByVal lpReturnedString As String, ByVal nSize As Long,_ ByVal lpFileName As String) As Long Declare Function WritePrivateProfileString Lib "kernel32"_ Alias "WritePrivateProfileStringA" (ByVal lpApplicationName_ As String, ByVal lpKeyName As Any, ByVal lpString As Any,_ ByVal lpFileName As String) As Long 設定ファイルの内容取得の方法は、だいたいこんな感じ。 :::::::::::::::::::::::::::::::::::::::::::::::: Dim StrFileName As String Dim StrSectionName As String Dim StrEntryName As String Dim StrData As String Dim LngRet As Long Dim StrBuff As String * 1024 : : LngRet = GetPrivateProfileString(StrSectionName,_ StrEntryName, "", StrBuff, 1024, StrFileName) StrData = Left(StrBuff, InStr(StrBuff, Chr(0)) - 1) :::::::::::::::::::::::::::::::::::::::::::::::: 設定ファイルの内容変更の方法は、だいたいこんな感じ。 :::::::::::::::::::::::::::::::::::::::::::::::: Dim StrFileName As String Dim StrSectionName As String Dim StrEntryName As String Dim StrData As String Dim LngRet As Long : : LngRet = WritePrivateProfileString(StrSectionName,_ StrEntryName, StrData, StrFileName) :::::::::::::::::::::::::::::::::::::::::::::::: VBに関するQAなら、以下のURLが参考になると思います。

参考URL:
http://www2j.biglobe.ne.jp/~little-g/vbtomo.html
BAD_LIFE
質問者

お礼

思い出しました! 丁寧な書き込みありがとうございます!

関連するQ&A

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

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

  • VBでCSVファイルを読み込む方法(最速方法は?)

    こんにちは。VB6.0(SP5)、Windows2000でVBの勉強をしています。 VBのテキストボックスに入力したデータをCSVファイルに保存する時、もうすでに登録されていたらエラーを出したいと思っています。 そこで、CSVファイルを読み込み、同じかどうか確認したいと思っていますが、どの方法で処理するのが早く効率的なのでしょうか。 ファイル形式・・・csvで50行×3列 ----------- aaa,1,2 bbb,3,4 ・・・50行程度のデータ ----------- テキストボックスに入力したデータ・・・例えば"ccc" 1.Open ファイル名 For Input As #fileNum でEOFまで読み、配列に入れ、その後1列目のデータが"ccc"かどうか確認する 2.Open ファイル名 For Input As #fileNum で読みながら、1列目のデータが"ccc"かどうか確認し、EOFまで繰り返す 3.DAOを利用し、SELECT文であるかないか確認する(DAO2.5) の3つの方法を試してみましたが、あるパソコンで行うとDAOが早いのに別のパソコンだとDAOが1番遅いなど、どれが効率的なのかよくわかりませんでした。 このような処理をしたい場合、みなさんはどのような方法で処理されますか? 上記以外の方法でも構いません。アドバイスよろしくお願いします。

  • ASPでiniファイルの読み書きを行う

    ASPでiniファイルの読み書きを行いたいと思っています。 なるべくならVBScriptを使用してやってみたいのですが、 それは可能でしょうか。 ただのテキストファイルとしてみるならできそうなのですが、 専用の関数などがありましたらどなたか教えていただけないでしょうか。 よろしくお願いします。

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

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

  • 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 としましたがメッセージボックスが表示されません。なぜなのでしょうか。教えてください。宜しくお願いいたします。

  • VBでのテキストファイルの 読み込み & 書き出し について

    テキストファイルの中味を全部読み込んで、テキストボックスに表示するというコードをOpenステートメントを使って書いています。 その際、1つの種類のデータを1つのテキストファィルとして書き出し&読み込み しているのですが、これですと種類が増えていくとともにテキストファイルの 数もどんどん増えてしまい効率が悪いです。 で、それらを1つのテキストファイルにまとめておいて、中をセクションに 区切って、それを読み込み&書き出しする方法はあるのでしょうか? データが1行ですと分かるのですが、それぞれが長いテキストデータを1つの テキストファイルに区切って書き出し&読み込みする方法が分かりません。 どなたか教えてください!!!!!!! よろしくお願いします。

  • 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

  • VBAでテキストファイルのデータを1つずつ読みたい

    VBでなくVBAなのですが、以下のようなテキストファイルの1,2行目は行単位で、4行目以降は1データずつ読みたいのですが、自分の知識では'Line'を使用しての行単位での読み込みしかできません。方法があれば教えて頂きたく存じます。 DATE 03/03/21 TIME 09:44:21 (空行) 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 ・ ・ ・ このような感じです。よろしくお願い致します。あと、VBAのファイル操作の詳しい解説書なども教えて頂けるとなお助かります。

  • C++ 設定ファイル

    VC++ではなく、ただのC++での質問です。 エラーメッセージやウインドウのサイズを外部ファイルに定義したいと思っています。 .NETではXMLファイルを使用していたのですが、C++では何を使うのが妥当でしょうか。 iniファイルというものもあるらしいのですが、 http://msdn.microsoft.com/ja-jp/library/cc429779.aspx にて、「この関数は、16 ビット Windows ベースのアプリケーションとの互換性を保つ目的でのみ提供されています。Win32 ベースのアプリケーションでは、初期化情報をレジストリに格納してください。」 といった内容が記述されており、iniファイルはあまり好ましくないようです。(この関数自体使えなくなる?)

  • iniファイル内の行を削除する方法

    iniファイルの使い方自体を間違えているのかも知れませんが、 わからないので教えてください。 VB6でiniファイルを作成しています。 使用しているAPIは「WritePrivateProfileString」です。 iniファイルの内容が以下のようにあったとします。 これは上記のAPIで出力しています。 [a] a1=xxxx a2=yyyy a3=zzzz プログラムでiniファイルを読み込み、 画面上である操作をしたとして、iniファイルを更新します。 結果、以下のような内容にするには、どのようにしたらよいのでしょうか。 [a] a1=xxxx a2=zzzz a1、a2を出力するところまではできるのですが、 a3の行を削除する方法がわかりません。 もしAPIでこの行を削除する方法がなければ、 iniファイルを削除して、再作成すればよいのだと思います。 その際には、iniファイルを削除するAPIがあるのでしょうか。 KillステートメントやOpenステートメントを使うのが一般的なのでしょうか。 よろしくお願いいたします。