WriteString/ReadString
BlitzMax Forums/BlitzMax Beginners Area/WriteString/ReadString| 
 | ||
| Can someone please show me how to use the Read and WriteString commands properly? I haven't figured out how to use them in BlitzMAX. | 
| 
 | ||
| Strict
Local file:TStream
file = WriteFile("file.txt")
  WriteString(file,"Hello")
CloseFile file
file = ReadFile("file.txt")
  Print ReadString(file,5)
CloseFile file
Personally I find it more convenient to use ReadLine/WriteLine. | 
| 
 | ||
| If I write "HelloWorld" into the file and read it like this ReadString(file,5) ReadString(file,5)does the the second one read from where the first one left off? | 
| 
 | ||
| I'd imagine so.  Try it. You're not going to start World War 3 by trying stuff out. :) | 
| 
 | ||
| Unless you're trying out nuclear weapons. In that case, ask first. | 
| 
 | ||
| Nuke the ReadString from orbit.  It's the only way to be sure. | 
| 
 | ||
| Quick and dirty but this is how I've done it for loading in high scores in a game I'm working on. Note it'll also make sure the file exists before it tries to load it else set up some default data. 
Global HighName:String[9+1], HighScore:Int[9+1]
Pointer = OpenFile("highscore.txt") ' ** Check if there is valid high score data saved
If Not Pointer
	' No HiScore.dat on disk so game is starting for first time. Load default High Scores
	For T = 1 To 9
		HighScore[T]=100000-T*10000
	Next
	HighName[1] = "Tony Black   "
	HighName[2] = "Simon Woods  " 
	HighName[3] = "Chris Randals"
	HighName[4] = "Andrew Burton"
	HighName[5] = "Lee Scottow  "
	HighName[6] = "Mick Green   "
	HighName[7] = "Mathew Buttle"
	HighName[8] = "Louis Denton "
	HighName[9] = "Steve Denton "
Else ' ** There is a HiScore.dat file present so load it.
	For T=1 To 9
		HighName[T]=ReadLine$(Pointer)
		HighScore[T]=Int(ReadLine(Pointer))
	Next
	CloseFile Pointer
EndIf
And to save the file when the program exits. 
Pointer=WriteFile("highscore.txt")
For T=1 To 9
	WriteLine Pointer,HighName[T]
	WriteLine Pointer,HighScore[T]
Next
CloseFile Pointer
 | 
| 
 | ||
| You really should encrypt that to stop people cheating.  Even basic XOR encryption is better than leaving high score data wide open to abuse. | 
| 
 | ||
| It's ripped code from a game I'm in progress with. Just making sure it works for now. Be worth encrypting it if I think the games good enough to pass around once I've finished it. |