INI 파일을 읽고 설치 응용 프로그램이 작동하도록 레지스트리에 값을 덤프하려고합니다. 이Visual Basic에서 INI 읽기 vb.net
[Setup Components]
Sybase Adaptive Server Anywhere Client=Yes
Borland Database Engine=Yes
BDERoot=c:\Program Files\Borland\BDE
Program Shortcuts=Yes
ODBC Data Service Name=Yes
Local Client = Yes
Sybase Admin = Yes
Sybase Directory= C:\Program Files\SQL Anywhere 16
DBRoot=c:\Database
Word Link=Yes
Installation Root Folder=c:\program
FireDAC=DB=asa16;eng=ENGINE;dbn=DBNAME;links=TCPIP{Host=127.0.0.1;Port=2638}
[Program Shortcuts]
Desktop=Yes
Start Menu=Yes
Program Title=PROGRAM
EXE Pathname=c:\program.exe
Parameters=DBNAME
Starting Directory=c:\
Icon=icon.ICO
[ODBC Data Service Name]
Data Service Name=DBNAME
Database File Name=c:\database\database.db
Database Name=DBNAME
Server Name=ENGINE
Comm Links=TCPIP{}
PrefetchBuffer=6000
PrefetchRows=50
CommBufferSize=1460
Compress=no
[Service]
Service Name=SQLANYs_DBNAME
Display Name=SQL Anywhere - DBNAME
Service Group=SQLANYServer
Params=-n DBNAME -x TCPIP{} "C:\database\database.db" -n DBNAME
그래서 나는 모든 항목을 쉽게 레지스트리에 덤프 될 필요가 같은
INI 파일 보인다.
Visual Studio 2015를 사용하고 있는데 Ludvik Jerabek의 INI 리더 (http://www.codeproject.com/Articles/21896/INI-Reader-Writer-Class-for-C-VB-NET-and-VBScript)를 사용하려고 시도했지만 기능이 제대로 작동하지 않았습니다! 내가 위의 사용 않았다
코드는 다음이었다
Dim ini = New IniFile()
ini.Load("setup.ini")
Dim readValue = ini.Sections("Service").Keys("Service Name")
MessageBox.Show(readValue.ToString)
나는 다음과 같은 오류가있어이 코드를 실행 :. "변환은 문자열에서"서비스 "정수"를 입력하는 "유효하지 않습니다를 - 또한이 방법은 꽤 작업이 될 것 INI 파일에서 각각의 모든 키를 명명 의미
내가 여기에 일부 도움이 질문을 읽은 후 다른 방법을 내려 가서 내가 다음 사용!
Private Declare Auto Function GetPrivateProfileString Lib "kernel32" (ByVal lpAppName As String,
ByVal lpKeyName As String,
ByVal lpDefault As String,
ByVal lpReturnedString As StringBuilder,
ByVal nSize As Integer,
ByVal lpFileName As String) As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim sb As StringBuilder
sb = New StringBuilder(500)
Dim readVal = GetPrivateProfileString("Service", "Service Name", "", sb, sb.Capacity, "setup.ini")
MessageBox.Show(readVal.ToString)
End Sub
를
그러나 이것은 단지 "0"
어떤 도움이 읽는 INI에서 주어진 INIFILE 클래스를 사용하여 레지스트리
이 줄은 문자열 대신에 서수 위치를 기대하지 않을까요? ini.Sections ("서비스"). 키 ("서비스 이름"). ini 섹션 (1). –
'Dim readValue As String = ini.Sections ("서비스"). 키 ("서비스 이름")'및 GetPrivateProfileString 함수 (정수가 아닌 문자열). 나중에 문자열에서 정수로 변환 할 수 있습니다. – Claudius
유형 문자열 작업을하지 않고 설정, 여전히 같은 오류/문제 – Gaza