Streams (ReadFloat)
Blitz3D Forums/Blitz3D Beginners Area/Streams (ReadFloat)
| ||
| When I use this code: The data is read, although as Integers. If I change to using EITHER ReadFloat(File) OR ReadFloat#(File) The data is NOT read correctly. My data is as follows: 3.0000000 1.0000000 -3.0000000 -3.0000000 1.0000000 -3.0000000 0.0000000 -2.7000000 -11.000000 0.0000000 10.300000 18.000000 0.0000000 9.7000000 18.000000 0.0000000 0.8000000 -23.600000 Any ideas on why this is? |
| ||
| You have not written floats to the file... you have written a text representation of floats. You will need to parse the text file and convert the strings from each line to a float before assigning it in your array. something like...
File=OpenFile("File.txt")
Dim a#(18)
For f=1 To 18
temp$=ReadLine(Decal)
convert# = Float(temp$)
a#(f)=convert#
Next
CloseFile(File)
... untested, but should put you on the right line |
| ||
| Or you could use WriteFloat/ReadFloat instead which is more efficient and easier to read ( by you not blitz ;) ) [edit] Looks a bit like this, keeps it nice and clear Example of writing file
Function Save_Ini()
file=WriteFile("dme.ini")
If file=0 Then RuntimeError ("Unable to Save ini file")
;Video
WriteInt (file,gGModeSelected)
WriteInt (file,gGamma)
WriteInt (file,gVSync)
WriteInt (file,gDetail)
;Sound
WriteFloat (file,gSoundVolume#)
WriteFloat (file,gMusicVolume#)
...
Example of reading file
Function Load_Ini()
file=ReadFile("dme.ini")
If file=0 Then RuntimeError ("Unable to Load ini file")
;Video
gGModeSelected=ReadInt(file)
gGamma=ReadInt (file)
gVSync=ReadInt (file)
gDetail=ReadInt(file)
;Sound
gSoundVolume#=ReadFloat(file)
gMusicVolume#=ReadFloat(file)
...
|
| ||
| Also, the problem with writing floats as strings is that sometimes float values are written/displayed using an exponent notation. In such cases, I don't think you can convert back to a float by simply doing x# = Float(val$). So, do what Shambler says. |
| ||
| Yes you can. bla# = "1.25e-4".toFloat() Try it, it does work. |
| ||
| I stand corrected. :) |