You must be logged in to do that.

FileWriteString

FileWriteString
void FileWriteString(int file, string s)

Documentation

Pass a handle to a file that is opened in write mode, and a string to be written. The string is written from the current position in the file, overwriting any existing data. It uses a 1 byte ascii representation for each character, and writes a 2 byte string length before the start of the string - so bytes used is equal to len(s) + 2. By storing the length first like this, it is possible to use FileReadString() to read a string of abritary length back.

Example Usage

int file = FileOpen("datafile.txt", FILE_WRITE);
FileWriteString(file, "a");
FileClose(file);
// This creates/overwrites a file three bytes in size
// Opened in a hex editor the contents will be: '01 00 61'
// Which is the ascii code of a little a
// With two bytes before saying the string is length one
// Note the least significant bit comes first

int file = FileOpen("datafile.txt", FILE_WRITE);
FileWriteString(file, "A string here");
FileWriteString(file, "And another one");
FileClose(file);
// Because the length is stored before the characters
// You can write strings however, and still read back
// As distinct separate values
Talkback

Post a new comment?

Talkback #1 written by Zip on 2004-09-30.

Because the length is stored in 2 bytes, the longest string you can write, and read back after, is 65535 characters. I have the 16 meg text file to prove this.

void AutoExec()
{
	string dog = "a";
	while (len(dog) < pow(2, 24))
	{dog = strdup(dog, 2);}
	//Add this and it works//dog = left(dog, len(dog) - 1);
	int file = FileOpen("datafile.txt", FILE_WRITE);
	FileWriteString(file, dog);
	FileClose(file);
	file = FileOpen("datafile.txt", FILE_READ);
	dog = FileReadString(file);
	Log(str(len(s)));
	FileClose(file);
}

Post a new comment?

Ben McGraw's lovingly crafted this website from scratch for years.
It's a lot prettier this go around because of Jon Wofford.
Verge-rpg.com is a member of the lunarnet irc network, and would like to take this opportunity to remind you that regardless how babies taste, it is wrong to eat them.