Reading and Writing in files
From NSIS Wiki
Jump to navigationJump to search
Author: n0On3 (talk, contrib) |
Description
This example is to show you how easy it is to read/write in files.
Write (overwrite)
This will overwrite SomeFile.txt contents or create it and put "hello" inside:
FileOpen $4 "$DESKTOP\SomeFile.txt" w FileWrite $4 "hello" FileClose $4
Write (append)
If the file exists and you don't want to lose its contents use this:
FileOpen $4 "$DESKTOP\SomeFile.txt" a FileSeek $4 0 END FileWrite $4 "$\r$\n" ; we write a new line FileWrite $4 "hello" FileWrite $4 "$\r$\n" ; we write an extra line FileClose $4 ; and close the file
That "$\r$\n" means "carriage return + new line". This is how windows knows that there's a new line in the file.
Read
For reading files:
FileOpen $4 "$DESKTOP\SomeFile.txt" r FileSeek $4 1000 ; 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 10 ; read 10 characters from the next line FileClose $4 ; and close the file
The variables we use to read/write can only hold up to 1024 bytes, but this is hardly a problem. Notice that every example used a different mode to open the file "w" "a" and "r".