How to pull all lines of a text file into a drop down
How to pull lines of text into a dropdown and select that in an NSIS install?
I am building an application installation that needs to pull a list of SQL Servers from the network. I have figured out how to do it with a vb script but I am now looking for a way to take the text file created by my VB script that lists the servers on their network.
What I have done so far...
- Created a INI script file called DBConnection.ini
- Created a text file using my VBS(WSH Visual Basic script)
- Created a demo install that pulls in only one database
// START DBConnection_Script.nsi
!define VERSIONNUMBER "version1.0.0.0"
!define APPNAME "Choose Database"
!define APPNAMEANDVERSION "Database Connection"
Name "DB Config Test"
OutFile "Database_Setup.exe"
InstallDir "$TEMP\BLAH"
ShowInstDetails show
Var List
!include "XPUI.nsh"
Function .oninit
!insertmacro XPUI_INSTALLOPTIONS_EXTRACT_AS "DBConnection.ini" "DBConnection.ini"
FileOpen $4 "SVRList.txt" r
FileSeek $4 0 ; we want to start reading at the 1000th byte
FileRead $4 $1 ; we read until the end of line (including carriage return and new line) and save it to $1
FileRead $4 $2 30 ; read 30 characters from the next line
StrCpy $List $2 ; add line two to the list variable
FileClose $4 ; and close the file
FunctionEnd
; XPUI Settings
!define XPUI_ABORTWARNING
; Pages
!insertmacro XPUI_PAGE_WELCOME
Page custom "DB_Connection" "WriteDBReg"
;!insertmacro XPUI_PAGE_INSTFILES
;!insertmacro XPUI_PAGE_FINISH
!insertmacro XPUI_LANGUAGE "English"
Section "DatabaseUpdate" SEC01
SectionEnd
Function DB_Connection
!insertmacro XPUI_INSTALLOPTIONS_EXTRACT "DBConnection.ini"
!insertmacro XPUI_INSTALLOPTIONS_WRITE "DBConnection.ini" "Field 6" "ListItems" "$List"
!insertmacro XPUI_INSTALLOPTIONS_DISPLAY "DBConnection.ini"
FunctionEnd
Function WriteDBReg
!insertmacro XPUI_INSTALLOPTIONS_READ $0 "DBConnection.ini" "Field 6" "ListItems"
StrCpy $List "$0"
WriteRegStr HKEY_LOCAL_MACHINE "Software\Application\General" "ServerList" "$List"
FunctionEnd
Section -Post
SectionEnd
// END DBConnection_Script.nsi
// START DBConnection.ini script
[Settings]
NumFields=10
[Field 1]
Type=Label
Text=Database Connection:
Left=5
Right=193
Top=3
Bottom=11
[Field 2]
Type=Label
Text=Please enter the server name where you have installed Microsoft SQL Server 2005.
Left=9
Right=248
Top=22
Bottom=41
[Field 3]
Type=Groupbox
Text=SQL 2005 Connection Information
Left=2
Right=250
Top=41
Bottom=160
[Field 4]
Type=Checkbox
Text= Use Microsoft Windows Domain/Active Directory authentication.
Left=21
Right=239
Top=60
Bottom=70
[Field 5]
Type=Label
Text=Server(\\Instance):
Left=10
Right=69
Top=78
Bottom=86
[Field 6]
Type=Combobox
Text=Combobox
ListItems=
Left=73
Right=240
Top=76
Bottom=89
[Field 7]
Type=Label
Text=Password:
Left=33
Right=66
Top=99
Bottom=107
[Field 8]
Type=Password
Left=73
Right=240
Top=97
Bottom=110
[Field 9]
Type=Label
Text=Database Name:
Left=12
Right=66
Top=121
Bottom=129
[Field 10]
Type=Droplist
Text=Droplist
ListItems=
Left=73
Right=240
Top=118
Bottom=155
// END DBConnection.ini script
// START SVRList.txt
(Local)
ServerName1
ServerName2
ServerName3
ServerName4
// END SVRList.txt