
.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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルのマクロで特定フォル...
-
【VB.NET】App.configにファイ...
-
xcopyコマンドの進行状況を表示...
-
コマンドプロンプトのコピー関...
-
【VBA】複数のtxtファイルから...
-
Excel2010VBAでエラーが出る相...
-
outlook開けない
-
VBA★PDFをPDFアプリで印刷し...
-
ブラウザからファイルパスを取...
-
VBAでパワーシェルを実行したい...
-
【Excel VBA】Power Qurry のソ...
-
Shell関数内で変数を使うことに...
-
【VBA】ExcelマクロでCSVファイ...
-
ExcelVBAの使い方 ¥の使い方...
-
EXCEL(VBA)で指定フォルダ内の...
-
Visual Studio 2013
-
fopenでのパス指定
-
Excel 相対パス
-
Excel VBAでテキストファイルを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
Excel 相対パス
-
実行ファイルのパスを取得したい
-
xcopyコマンドの進行状況を表示...
-
【VB.NET】App.configにファイ...
-
ExcelのVBAで上書き保存を確...
-
コマンドプロンプトのコピー関...
-
VBAでパワーシェルを実行したい...
-
エクセルのマクロで特定フォル...
-
Eclipse
-
VBAでの共有パスにつきまして
-
VBA★PDFをPDFアプリで印刷し...
-
C#でのProcess.Startと変数path
-
【VBA】ExcelマクロでCSVファイ...
-
ExcelVBAの使い方 ¥の使い方...
-
fopenでのパス指定
-
EXCEL(VBA)で指定フォルダ内の...
-
A列に記載されているフォルダ...
-
VBAで、VBのapp.pathと同じ機能...
おすすめ情報