.netでのiniファイル読込がうまくいきません。
何が悪いのかさっぱりわかりません。
ご指摘お願いいたします。
環境
os :xp 開発ソフト VB.NET ver 1.1.4322 SP1
ソース
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
'実行ファイルパスの取得 *VB6のapp.path
Shared Function GetAppPath() As String
Return System.IO.Path.GetDirectoryName( _
System.Reflection.Assembly.GetExecutingAssembly().Location)
End Function
Function INI_DBPATH_READ(ByVal FilePath As String) As String
Dim lngRet As Long
'読み込みバッファ(固定長)
Dim strGetBuff As String = 256
'iniファイルより読み込む文字列のサイズ
Dim intGetSize As Integer
'セクション名
Dim strSection As String
'キー名
Dim strKey As String
'読み込みエラー時の出力文字列
Dim strErr As String
'iniファイル名(フルパス)
Dim striniFn As String
strGetBuff = Space(256)
strSection = "TIFF_FOLDER"
strKey = "PATH"
strErr = "失敗"
striniFn = Replace(GetAppPath(), "\bin", "\Ini") & "\test.ini"
intGetSize = 256
'strGetBuffに文字列を取得する
lngRet = GetPrivateProfileString(strSection, strKey, strErr, _
strGetBuff, intGetSize, striniFn)
'末尾のNull除去
MsgBox(Microsoft.VisualBasic.Left(strGetBuff, InStr(strGetBuff, Chr(0)) - 1))
End Function
iniファイルの内容
[TIFF_FOLDER]
PATH=成功
No.2ベストアンサー
- 回答日時:
vb6時代コードそのまんまになってるのが原因みたいです。
例えばLong型で宣言されている部分は.NETではIntegerになります。
その他数箇所手を入れました。
まずAPI部分
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As System.Text.StringBuilder, _
ByVal nSize As Integer, _
ByVal lpFileName As String) As Integer
つづいて
INI_DBPATH_READ部分
Sub INI_DBPATH_READ(ByVal FilePath As String)
Dim lngRet As Long
'読み込みバッファ(固定長Stringというのは.NETではナイ)
Dim strGetBuff As New System.Text.StringBuilder
strGetBuff.Capacity = 256
'iniファイルより読み込む文字列のサイズ
Dim intGetSize As Integer
'セクション名
Dim strSection As String
'キー名
Dim strKey As String
'読み込みエラー時の出力文字列
Dim strErr As String
'iniファイル名(フルパス)
Dim striniFn As String
strSection = "TIFF_FOLDER"
strKey = "PATH"
strErr = "失敗"
striniFn = Replace(GetAppPath(), "\bin", "\Ini") & "\test.ini"
'strGetBuffに文字列を取得する
lngRet = GetPrivateProfileString(strSection, strKey, strErr, _
strGetBuff, strGetBuff.Capacity, striniFn)
MsgBox(strGetBuff.ToString)
End Sub
これでうまくいくと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
-
4
Select Case文でこのようなことは可能でしょうか?
Visual Basic(VBA)
-
5
VB6.0のString関数に代わるVB2008のそれは?
Visual Basic(VBA)
-
6
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
7
VB2008で定数に色の設定をしたいです。(初心者)
Visual Basic(VBA)
-
8
CloseとDisposeの違い
Visual Basic(VBA)
-
9
VB.net XMLの作成方法 Iniの代替
Visual Basic(VBA)
-
10
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
エクセルのマクロで特定フォル...
-
ExcelVBAの使い方 ¥の使い方...
-
VBA★PDFをPDFアプリで印刷し...
-
VBS パスに変数を入れたい
-
Eclipse
-
エクセルVBAで一つ上の階層...
-
VBAでの共有パスにつきまして
-
xcopyコマンドの進行状況を表示...
-
ExcelのVBAで上書き保存を確...
-
【VB.NET】App.configにファイ...
-
setcurrentdirectoryのパス拡張...
-
SaveAsの保存先について
-
A列に記載されているフォルダ...
-
【VBA】ExcelマクロでCSVファイ...
-
【VB6】デバイスマネージャを表...
-
ShellExecuteでエクセルファイ...
-
アプリケーションのインストー...
-
VBAでテキストファイル中の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
VBAでパワーシェルを実行したい...
-
VBA一覧取得 再投稿
-
【VB.NET】App.configにファイ...
-
エクセルVBAで一つ上の階層...
-
初心者powershellのPS1ファイル...
-
ExcelVBAの使い方 ¥の使い方...
-
EXCEL(VBA)で指定フォルダ内の...
-
SaveAsの保存先について
-
Excel 相対パス
-
パスワード保護されたExcelファ...
-
【VBA】ExcelマクロでCSVファイ...
-
xcopyコマンドの進行状況を表示...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
VBS パスに変数を入れたい
-
コマンドプロンプトのコピー関...
-
【VBA】複数のtxtファイルから...
-
開いているファイルを削除し、...
おすすめ情報