Help with reading strings from files

BlitzMax Forums/BlitzMax Beginners Area/Help with reading strings from files

Rooster(Posted 2016) [#1]
I've been trying to learn how reading strings from files works, and I ran into a problem.

With ReadString I have to tell it how long the string is. With ReadLine I don't have to do that, but it just grabs everything and stuffs it all in the same variable.

So I'm looking for a good way to get independent strings out of files.
I did find this here , but I couldn't get any of the two examples working.

I know I could just put a Int between the strings telling how long they are, and then use ReadString. But that just seems messy and unnecessary.

Thanks in advance!


TomToad(Posted 2016) [#2]
Are these strings previously written with BlitzMAX? if so, just add a newline ("~n") at the end, or use WriteLine instead of WriteString, then ReadLine will work properly.

SuperStrict
Local out:TStream = WriteStream("tempfile.txt")
WriteLine out,"One"
WriteLine out,"two"
WriteLine out,"Three"
CloseStream out

Local in:TStream = ReadStream("tempfile.txt")
While Not Eof(in)
	Local Line:String = ReadLine(in)
	Print Line
Wend
CloseStream in



Rooster(Posted 2016) [#3]
Thank you Tom for the help!
The example code was very helpful to me. :-)

I do have one question though.
What is the difference between WriteStream and WriteFile? I've never seen WriteStream before.

Well thanks again Tom. =)


Floyd(Posted 2016) [#4]
What is the difference between WriteStream and WriteFile?

I think they are identical.

A stream is a more general thing. It could be a traditional file. But it might also be a BlitzMax bank, or even something on a network, like a database for game scores.

So you might expect WriteFile to be like WriteStream restricted to files. But I think it is exactly the same and is included as a convenience for people who are already familiar with WriteFile from earlier Blitz languages.


Rooster(Posted 2016) [#5]
Okay.
Thanks! =)