UserGuide - Reading and writing files
This example will write 100 random records each containing a byte, a floating-point number, a long integer and a string. It then reads all the records back and displays them in the debug window.  EnableExplicit
  ; Define the constants:
  #MAXBYTE = 255
  #MAXLONG = 2147483647
  
  ; Define some variables.
  Define.f Float
  Define.l Count, File
  Define.s Folder, FileName, String
  
  ; Create a temporary file name.
  Folder = GetTemporaryDirectory()
  FileName = Folder + "test.data"
  
  ; Create the temporary file.
  ; If #PB_Any is used, CreateFile returns the file's number.  
  ; Useful if you may have more than one file open simultaneously.
  File = CreateFile(#PB_Any, FileName)
  
  If File
    ; If this was successful - write 100 random records.
    For Count = 1 To 100
      
      ; Write a random byte (0 - 255).
      WriteByte(File, Random(#MAXBYTE))
      
      ; Create and write a random float.
      ; This calculation is there to make the number have a floating-point component (probably).
      Float = Random(#MAXLONG) / ((Random(7) + 2) * 5000)
      WriteFloat(File, Float)
      
      ; Write a random long.
      WriteLong(File, Random(#MAXLONG))
      
      ; Create and write a random string in Unicode format.
      ; Note the use of WriteStringN to delimit the string with an end of line marker.
      String = "String " + StrU(Random(#MAXLONG))
      WriteStringN(File, String, #PB_Unicode)
      
    Next Count
    
    ; Close the file.
    CloseFile(File)
    
  Else
    ; If this was unsuccessful.
    Debug "Could not create the file: " + FileName 
    
  EndIf
  
  ; Open the file for reading this time.
  File = ReadFile(#PB_Any, FileName)
  
  If File
    ; If this was successful - read and display records from the file.
    
    ; Reset the counter.
    Count = 1
    
    ; Loop until the 'end of file' is reached.
    ; This will read all of the records regardless of how many there are.
    While Eof(File) = 0
      
      ; Print a header line.
      Debug "------------------------------------------------------------------------------------------------"
      
      Debug "[" + StrU(Count) + "]"
      Count + 1
      ; Read a byte value and print it.
      Debug StrU(ReadByte(File), #PB_Byte)
      
      ; Read a float value.
      Debug StrF(ReadFloat(File))
      
      ; Read a long value.
      Debug StrU(ReadLong(File), #PB_Long)
      
      ; Read a string value.
      Debug ReadString(File, #PB_Unicode)
      
    Wend
    
    ; Print the trailing line.
    Debug "------------------------------------------------------------------------------------------------"
    
    ; Close the file.
    CloseFile(File)
    
    ; Tidy up.
    DeleteFile(FileName)
    
  Else
    ; If this was unsuccessful.
    Debug "Could not open the file: " + FileName
    
  EndIf
UserGuide Navigation
< Previous: Compiler directives | Overview | Next: Memory access >