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".