Ich versuche, eine INI-Datei zu lesen und dann die Werte in die Registrierung zu speichern, damit eine Setup-Anwendung funktioniert.INI in Visual Basic lesen vb.NET
Die INI-Datei sieht wie folgt aus
[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
Also alles was ich brauche diese Elemente in die Registry einfach abgeladen werden.
Ich benutze Visual Studio 2015, ich habe versucht, Ludvik Jerabek INI-Leser (http://www.codeproject.com/Articles/21896/INI-Reader-Writer-Class-for-C-VB-NET-and-VBScript10) zu verwenden, aber hatte kein Glück, dass das funktioniert!
Der Code i für die oben verwendet haben war die folgende:
Dim ini = New IniFile()
ini.Load("setup.ini")
Dim readValue = ini.Sections("Service").Keys("Service Name")
MessageBox.Show(readValue.ToString)
Wenn dieser Code ausgeführt wird ich die folgende Fehlermeldung anzeigt:. „Konvertierung von String‚Service Integer ‚‘ eingeben‘ist nicht gültig - auch diese Methode bedeutet, jeden Schlüssel in der INI-Datei zu benennen, die ganz bestimmte Aufgabe wäre
ich ging dann ein anderes Verfahren, nachdem ich einige Hilfe Fragen hier gelesen und ich verwendet, um die folgenden:
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
dies jedoch nur „0“ zurück
Jede Hilfe dankbar sein würde, einen Weg zu finden, diese Lesung aus dem INI zu erhalten und
Erwartet diese Zeile möglicherweise nicht eine Ordinalposition anstelle einer Zeichenfolge? 'ini.Sections (" Service "). Schlüssel (" Service Name ")' z.B. ini.Sektionen (1). usw. –
'Dim readValue As String = ini.Sections (" Dienst "). Keys (" Dienstname ")' und Ihre 'GetPrivateProfileString-Funktion' als String nicht ganzzahlig. Sie können später von String in Integer konvertieren. – Claudius
Einstellung sie als Typ String nicht funktioniert, immer noch der gleiche Fehler/Problem – Gaza