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.
WriteString/ReadString
BlitzMax Forums/BlitzMax Beginners Area/WriteString/ReadStringStrict 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. :)
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.
And to save the file when the program exits.
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.