ConfigRead: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
Instructor (talk | contribs) No edit summary |
Instructor (talk | contribs) No edit summary |
||
Line 8: | Line 8: | ||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
ConfigRead v1. | ConfigRead v1.1 | ||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
Line 26: | Line 26: | ||
Note: | Note: | ||
-Error flag if entry not found | |||
-Error flag if file isn't exist | -Error flag if file isn't exist | ||
</highlight-nsis> | </highlight-nsis> | ||
Line 74: | Line 75: | ||
readnext: | readnext: | ||
FileRead $2 $3 | FileRead $2 $3 | ||
IfErrors | IfErrors error | ||
StrCpy $4 $3 $0 | StrCpy $4 $3 $0 | ||
StrCmp $4 $1 0 readnext | StrCmp $4 $1 0 readnext | ||
Line 86: | Line 87: | ||
error: | error: | ||
SetErrors | SetErrors | ||
StrCpy $0 '' | StrCpy $0 '' | ||
Revision as of 07:28, 7 February 2006
Author: Instructor (talk, contrib) |
Page for NSIS 2.07 and below users
You can use the latest version of headers (recommended) or the following function code (put the function code in your script before calling it)
Function Description
____________________________________________________________________________ ConfigRead v1.1 ____________________________________________________________________________ Read value from entry name in config file. Syntax: ${ConfigRead} "[File]" "[Entry]" $var "[File]" ; config file ; "[Entry]" ; entry name ; $var ; Result: Value Note: -Error flag if entry not found -Error flag if file isn't exist
Example1:
Section ${ConfigRead} "C:\AUTOEXEC.BAT" "SET winbootdir=" $R0 ;$R0=C:\WINDOWS SectionEnd
Example2:
Section ${ConfigRead} "C:\apache\conf\httpd.conf" "Timeout " $R0 ;$R0=30 SectionEnd
Function Code
Function ConfigRead !define ConfigRead `!insertmacro ConfigReadCall` !macro ConfigReadCall _FILE _ENTRY _RESULT Push `${_FILE}` Push `${_ENTRY}` Call ConfigRead Pop ${_RESULT} !macroend Exch $1 Exch Exch $0 Exch Push $2 Push $3 Push $4 ClearErrors FileOpen $2 $0 r IfErrors error StrLen $0 $1 StrCmp $0 0 error readnext: FileRead $2 $3 IfErrors error StrCpy $4 $3 $0 StrCmp $4 $1 0 readnext StrCpy $0 $3 '' $0 StrCpy $4 $0 1 -1 StrCmp $4 '$\r' +2 StrCmp $4 '$\n' 0 close StrCpy $0 $0 -1 goto -4 error: SetErrors StrCpy $0 '' close: FileClose $2 Pop $4 Pop $3 Pop $2 Pop $1 Exch $0 FunctionEnd