FileRecode: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
m (Updated by user: Instructor (talk, contrib).) |
Instructor (talk | contribs) No edit summary |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{ | {{PageAuthor|Instructor}} | ||
{{User:Instructor/Headers/Template}} | |||
== | == Function Description == | ||
<highlight-nsis> | |||
<highlight-nsis> | |||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
Line 26: | Line 27: | ||
-Error flag if file isn't exist | -Error flag if file isn't exist | ||
-Error flag if syntax error | -Error flag if syntax error | ||
</highlight-nsis> | |||
Example: | <b>Example:</b> | ||
Section | <highlight-nsis>Section | ||
${FileRecode} "C:\SCANDISK.LOG" "CharToOem" | ${FileRecode} "C:\SCANDISK.LOG" "CharToOem" | ||
SectionEnd | SectionEnd | ||
</highlight-nsis> | |||
== Function Code == | |||
<highlight-nsis> | |||
Function FileRecode | Function FileRecode | ||
Line 59: | Line 63: | ||
FileOpen $2 $0 a | FileOpen $2 $0 a | ||
FileSeek $2 0 END $3 | FileSeek $2 0 END $3 | ||
System::Alloc $3 | System::Alloc /NOUNLOAD $3 | ||
Pop $4 | Pop $4 | ||
FileSeek $2 0 SET | FileSeek $2 0 SET | ||
System::Call 'kernel32::ReadFile(i r2, i r4, i $3, t.,)' | System::Call /NOUNLOAD 'kernel32::ReadFile(i r2, i r4, i $3, t.,)' | ||
System::Call 'user32::$1Buff(i r4, i r4, i $3)' | System::Call /NOUNLOAD 'user32::$1Buff(i r4, i r4, i $3)' | ||
FileSeek $2 0 SET | FileSeek $2 0 SET | ||
System::Call 'kernel32::WriteFile(i r2, i r4, i $3, t.,)' | System::Call /NOUNLOAD 'kernel32::WriteFile(i r2, i r4, i $3, t.,)' | ||
System::Free $4 | System::Free $4 | ||
FileClose $2 | FileClose $2 | ||
Line 86: | Line 87: | ||
</highlight-nsis> | </highlight-nsis> | ||
[[ | [[Category:Text Files Manipulation Functions]] |
Latest revision as of 07:30, 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
____________________________________________________________________________ FileRecode ____________________________________________________________________________ Recode text file from DOS to Windows format and vice-versa. Syntax: ${FileRecode} "[File]" "[Format]" "[File]" ; ; "[Format]" ; OemToChar -from DOS to Windows ; CharToOem -from Windows to DOS Note: -Error flag if file isn't exist -Error flag if syntax error
Example:
Section ${FileRecode} "C:\SCANDISK.LOG" "CharToOem" SectionEnd
Function Code
Function FileRecode !define FileRecode `!insertmacro FileRecodeCall` !macro FileRecodeCall _FILE _FORMAT Push `${_FILE}` Push `${_FORMAT}` Call FileRecode !macroend Exch $1 Exch Exch $0 Exch Push $2 Push $3 Push $4 IfFileExists $0 0 error StrCmp $1 OemToChar +2 StrCmp $1 CharToOem 0 error FileOpen $2 $0 a FileSeek $2 0 END $3 System::Alloc /NOUNLOAD $3 Pop $4 FileSeek $2 0 SET System::Call /NOUNLOAD 'kernel32::ReadFile(i r2, i r4, i $3, t.,)' System::Call /NOUNLOAD 'user32::$1Buff(i r4, i r4, i $3)' FileSeek $2 0 SET System::Call /NOUNLOAD 'kernel32::WriteFile(i r2, i r4, i $3, t.,)' System::Free $4 FileClose $2 goto end error: SetErrors end: Pop $4 Pop $3 Pop $2 Pop $1 Pop $0 FunctionEnd