ReadStringAt$
String$ = ReadStringAt$(ChannelIndex, FilePosition)
 
Parameters:

    ChannelIndex = Index of the file channel to read from
    FilePosition = The position within the file to read
Returns:

    String$ = The string that was read
 

      The ReadStringAt$ function will read a text string from any position within an open file channel. The command expects the string it's reading to be terminated with carriage return characters of 10 & 13.

      So ReadStringAt$ lets you randomly access any piece of data within the file.




FACTS:


      * Reading none sequential pieces of data can be slow
      * ReadStringAt$ only works with files opened with ReadFile



Mini Tutorial:


      This example creates a file and reads the with some various bits of data store in it, then read it's back again using the random access file commands.


  
; Create a file name
  File$=TempDir$()+"PB_TestFile.txt"
  
; Get a Free File Channel Index
  MyFile=GetFreeFile()
  
; CReate a File for writing data to
  WriteFile File$,MyFile
  
; Write some Byte data at a byte pos 100
  WriteByteAt 1,100,255
  
; Write some Word data at a byte pos 200
  WriteWordAt 1,200,64000
  
; Write some Integer data at a byte pos 300
  WriteIntAt 1,300,111222
  
; Write some Float data at a byte pos 400
  WriteFloatAt 1,400,123.456
  
; Write some Stringt data at a byte pos 500
  WriteStringAt 1,500,"Play Basic"
  
; Write some Stringt data at a byte pos 600
  WriteChrAt 1,600,"Hello World",11
  
  
; Close this file channel
  CloseFile MyFile
  
  
  Print "============================"
  Print "Reading File Data:"+File$
  Print "============================"
  
; Get a Free File Channel Index
  MyFile=GetFreeFile()
  
; Open a file to READ with READFILE
  ReadFile File$,MyFile
  
; Read and display byte from position 100 in this file
  Print ReadByteAt(myFile,100)
  
; Read and display the Word from position 200 in this file
  Print ReadWordAt(myFile,200)
  
; Read and display the Integer from position 300 in this file
  Print ReadIntAt(myFile,300)
  
; Read and display the Float from position 400 in this file
  Print ReadFloatAt(myFile,400)
  
; Read and display the String from position 500 in this file
  Print ReadStringAt$(myFile,500)
  
; Read and display the String from position 600 in this file
  Print ReadChrAt$(myFile,600,11)
  
  
; Close this file channel
  CloseFile MyFile
  
; Display the Size of the FIle
  Print "============================"
  Print "File Size:"+Str$(FileSize(file$))
  Print "============================"
  
  If FileExist(file$) Then DeleteFile file$
  
; Display the screen and wait for a key press
  Sync
  WaitKey
  



This example would output.

  
  ============================
  Reading File:C:Windows\temp\Pb_TestFile.txt
  ============================
  255
  64000
  111222
  123.456
  Play Basic
  Hello World
  ============================
  File Size:611
  ============================
  

 
Related Info: CloseFile | ReadFile | WriteFile :
 


(c) Copyright 2002 - 2024 - Kevin Picone - PlayBASIC.com