ConfigRead: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Forgot to put authors in.)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{|align=right
{{PageAuthor|Instructor}}
|<small>Author: [[{{ns:2}}:Instructor|Instructor]] ([[{{ns:3}}:Instructor|talk]], [[{{ns:-1}}:Contributions/Instructor|contrib]])</small>
 
|}
{{User:Instructor/Headers/Template}}
<br style="clear:both;">
 
== The Function ==
== Function Description ==
<highlight-nsis>/*
 
<highlight-nsis>
____________________________________________________________________________
____________________________________________________________________________


                             ConfigRead v1.0
                             ConfigRead v1.1
____________________________________________________________________________
____________________________________________________________________________


Line 25: 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>






Example1:
<b>Example1:</b>
Section
<highlight-nsis>Section
${ConfigRead} "C:\AUTOEXEC.BAT" "SET winbootdir=" $R0
${ConfigRead} "C:\AUTOEXEC.BAT" "SET winbootdir=" $R0
;$R0=C:\WINDOWS
;$R0=C:\WINDOWS
SectionEnd
SectionEnd
</highlight-nsis>


Example2:
<b>Example2:</b>
Section
<highlight-nsis>Section
${ConfigRead} "C:\apache\conf\httpd.conf" "Timeout " $R0
${ConfigRead} "C:\apache\conf\httpd.conf" "Timeout " $R0
;$R0=30
;$R0=30
SectionEnd*/
SectionEnd
</highlight-nsis>


== Function Code ==


;---------------------------------------------------------------------------
<highlight-nsis>
 
Function ConfigRead
Function ConfigRead
!define ConfigRead `!insertmacro ConfigReadCall`
!define ConfigRead `!insertmacro ConfigReadCall`
Line 70: Line 75:
readnext:
readnext:
FileRead $2 $3
FileRead $2 $3
IfErrors empty
IfErrors error
StrCpy $4 $3 $0
StrCpy $4 $3 $0
StrCmp $4 $1 0 readnext
StrCmp $4 $1 0 readnext
Line 82: Line 87:
error:
error:
SetErrors
SetErrors
empty:
StrCpy $0 ''
StrCpy $0 ''


Line 96: Line 99:
FunctionEnd
FunctionEnd
</highlight-nsis>
</highlight-nsis>
 
Please Test First then Upload any script.. don't be gumrah
[[{{ns:14}}:Text Files Manipulation Functions]]
[[Category:Text Files Manipulation Functions]]

Latest revision as of 06:18, 19 June 2010

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

Please Test First then Upload any script.. don't be gumrah