FileRecode: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
Instructor (talk | contribs) No edit summary |
Instructor (talk | contribs) No edit summary |
||
Line 13: | Line 13: | ||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
FileRecode | |||
____________________________________________________________________________ | ____________________________________________________________________________ | ||
Recode text file from DOS to Windows format and vice-versa. | |||
Syntax: | Syntax: | ||
${ | ${FileRecode} "[File]" "[Format]" | ||
"[File]" ; | "[File]" ; | ||
; | |||
"[Format]" ; OemToChar -from DOS to Windows | |||
; CharToOem -from Windows to DOS | |||
Note: | Note: | ||
-Error flag if | -Error flag if file isn't exist | ||
-Error flag if syntax error | |||
</highlight-nsis> | </highlight-nsis> | ||
Line 37: | Line 38: | ||
<b>Example:</b> | <b>Example:</b> | ||
<highlight-nsis>Section | <highlight-nsis>Section | ||
${ | ${FileRecode} "C:\SCANDISK.LOG" "CharToOem" | ||
SectionEnd | SectionEnd | ||
</highlight-nsis> | </highlight-nsis> | ||
Line 45: | Line 45: | ||
<highlight-nsis> | <highlight-nsis> | ||
Function FileRecode | Function FileRecode | ||
!define FileRecode `!insertmacro FileRecodeCall` | !define FileRecode `!insertmacro FileRecodeCall` |
Revision as of 14:26, 4 July 2005
Author: Instructor (talk, contrib) |
Links
- Latest version of headers "nsh.zip"
- http://forums.winamp.com/showthread.php?s=&threadid=203228&goto=lastpost
If a function is used without header, put the function code in your script before calling it.
The 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
The 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 IfErrors error FileSeek $2 0 END $3 System::Alloc $3 Pop $4 FileSeek $2 0 SET System::Call 'kernel32::ReadFile(i r2, i r4, i $3, t.,)' System::Call 'user32::$1Buff(i r4, i r4, i $3)' FileSeek $2 0 SET System::Call '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