あるプログラムにおいて、設定ファイル(~.ini)を読込む必要が出てきました。
INIファイルといってもただのテキストファイルですから
1行づつ読み込んで処理しても構わないのですが、
確か、もう少し効率よく処理する為の関数が用意されていたと思うのです。
うろ覚えなのですが、ファイルを指定し、セクション単位にその内容が読込めると
いったものだったと記憶しているのですが・・・。
思い出せずにイライラしています。
ちなみにVBのVerは6です。
どうかよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/03/07 19:53

APIのGetPrivateProfileStringのことでしょうか?



使い方は、APIビューアーをどうぞ
    • good
    • 0
この回答へのお礼

思い出せてすっきりしました。
ありがとうございます。

お礼日時:2001/03/07 19:54

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qファイルが1行づつ読み込めない

おせわになります
よろしくお願いします
VB6.0
OS:XP
を使用しています

VBからHTMLファイルを読み込んでいるのですが
1行づつ読み込めたりよみこめなかったりします
ファイルの中は
----------------------------

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title></title>
</head>
<body>
<!-- $$$TAS:スタート$$$ -->
<table width="560" border="0" cellspacing="15" cellpadding="0" summary="メニュー構成の為のテーブル">
<tr>
<td class="space" valign="top"><img src="img/photo01.jpg" width="150" height="100" alt="" /></td>
<td valign="top">
<table width="375" border="0" cellspacing="0" cellpadding="0" summary="メニュー構成の為のテーブル">
<tr>
<td class="s_title"><span class="s_title01">○○</span></td>
</tr>
<tr>
<td class="txt02">○○○</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- $$$TAE -->
</body>
</html>

-------------------------------
です。
ファイルの中が
-----------
1
2
3
-----------
とかなら正常に動作します

ソースは
Dim intFileNo As Integer
Open strNowPage For Input As #intFileNo
Do While (Not FileSystem.EOF(intFileNo))
Dim stBuffer As String
Line Input #intFileNo, stBuffer
debug.print stbuffer
Loop

Close #intFileNo
です

何か間違っているところがあればご指摘お願いします

以上よろしくお願いします。

おせわになります
よろしくお願いします
VB6.0
OS:XP
を使用しています

VBからHTMLファイルを読み込んでいるのですが
1行づつ読み込めたりよみこめなかったりします
ファイルの中は
----------------------------

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title></title>
</head>
<body>
<!-- $$$TAS:スタート$$$ -->
<table width="560" border="0" cellspacing="15" cellpadding="0" summary="メ...続きを読む

Aベストアンサー

このHTMLファイルで現象は再現するのでしょうか?
当方で確認してみましたが行単位で読めているようですが …
ちなみに25行であればいいんですよね
  <html> から </HTML>までのカウントですが

Q【VB2005】txtファイルからINIファイルみたいに読込む

googleや、ITプロのサイトなどで
VB2005のINIファイルもしくはXmlの読書きが理解できずに、
とりあえず、txtファイルから設定の読込みをしたいと考えてます。

↓Text.txt↓の内容
[Mode]
Mode=1
[SYSTEM]
Menu1=登録処理
Menu2=保存処理

・各、=(イコール)のあとの値を変数に代入したいと思ってます。
 状況と、したいことが伝わりにくいかも知れませんが
 ご口授お願いします。

Aベストアンサー

Win32APIのGetPrivateProfileStringを使えばできます。
#ファイルの識別子が.iniでも.txtでも関係なし...

QVB6.0でINIファイルからデータを読み込みたいです

INIファイルからPCのモニターとフォームサイズデータの比率を読み込み、そのデータを元にフォームを画面を呼び出したいのですが、どの様にしてよいかがわかりません。申し訳ありませんが教えていただけないでしょうか??
ちなみにINIファイルのデータを読み込み、ボタンに名前を表示するといったことはできました。

Aベストアンサー

フォームサイズは、そのフォームのScaleWidthやScaleHeightプロパティで取得することができますよね。
ディスプレイサイズ(解像度)は、以下のようなAPI関数を使って取得できますので(X=1280, Y=800等のピクセル値)、両者の値から行いたい値を算出して、フォームの前述のプロパティを変更すれば良いのではないでしょうか。

Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" _
      (ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN As Long = 0
Private Const SM_CYSCREEN As Long = 1
Private Sub Form_Load()
  Dim X As Long, Y As Long
  X = GetSystemMetrics(SM_CXSCREEN) '画面の幅を取得します。
  Y = GetSystemMetrics(SM_CYSCREEN) '画面の高さを取得します。
  Debug.Print X, Y
End Sub
注)ステートメントを見易くするため先頭に全角スペースを入れてます。
 

フォームサイズは、そのフォームのScaleWidthやScaleHeightプロパティで取得することができますよね。
ディスプレイサイズ(解像度)は、以下のようなAPI関数を使って取得できますので(X=1280, Y=800等のピクセル値)、両者の値から行いたい値を算出して、フォームの前述のプロパティを変更すれば良いのではないでしょうか。

Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" _
      (ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN As Long = 0
Private Const SM...続きを読む

QINIファイル読み込み

VB2005使用のものです。
INIfile_readを使ってINIファイルに記述してあるデータベース保存先を取り出したいのですが・・方法がよくわかりません;

取り出した保存先は、○○○に入れて空のデータベース作成に使いたいのです。
Dim engine As New SqlCeEngine("Data Source = ○○○.sdf")
ご存知の方ご教授お願いいたします。

Aベストアンサー

1 の回答に補足するならば。
指定した [INIファイル名]の、[セクション名]に[キー名]が存在しなかった場合の“デフォルト値”をなんらかの方法で指定した方が安全ですね。

でも。Microsoft からは .NET では ini ファイルではなく、configファイルを使ってくれ、との推奨が出てますけど。

他にも、Enterprise Library を使えば、Windows Form アプリでもセッション変数を使えるようだし。↓
http://www.atmarkit.co.jp/fdotnet/entlib/index/index.html
※セッション変数が使えたら、同一の SLN ファイル内の別 EXE に対して、セッション変数を介して、Login情報を引き継げるし。iniファイルに一旦書き込む必要もなくなるだろうし。

参考URL:http://www.atmarkit.co.jp/fdotnet/entlib/index/index.html

QDAOが読み込めない

VB2005でDAOを使って、データベースへアクセス(ODBCDirectのワークスペースを使用)しています。
※Microsoft DAO 3.6 object libraryは参照設定済です。
Public daodt As New dao.DBEngine
Public daows As dao.Workspace
(1)daows = daodt.CreateWorkspace("", "", "",dao.WorkspaceTypeEnum.dbUseODBC)
上記(1)の処理を実行すると下記のエラーがでます。
「System.Runtime.InteropServices.COMException( DLL '卍䑒㉏⸰䱄Lߑ' を読み込むことができません。)」
原因がわからず困っています。どなたかご回答いただけないでしょうか?何とぞよろしくお願いします。

Aベストアンサー

文字化けしている部分も明示してみましょう

> 卍䑒㉏⸰䱄Lߑ' を読み込むことができません。


UseTypeを指示した場合 当方ではエラーになりません

WinXP SP3 + VS2005 TS SP1 といった環境ですが ...


人気Q&Aランキング

おすすめ情報