Interface
Readable
Description
Provides "specs" for reading with the Readable class interface.
Methods
Name |
Parameters |
Returns |
Shared |
---|---|---|---|
Count As Integer, encoding As TextEncoding = Nil |
|||
Method descriptions
Readable.EndOfFile
EndOfFile As Boolean
Returns True when there's no more data left to read.
This code reads the rows and columns of data from a tab-delimited text file into a ListBox:
Var f As FolderItem Var textInput As TextInputStream Var rowFromFile As String f = FolderItem.ShowOpenFileDialog("text/plain") ' defined as a FileType If f <> Nil Then textInput = TextInputStream.Open(f) textInput.Encoding = Encodings.UTF8 Do rowFromFile = textInput.ReadLine Var values() As String = rowFromFile.ToArray(String.Chr(9)) ListBox1.ColumnCount = values.Count ListBox1.AddRow("") Var col As Integer For Each value As String In values ListBox1.CellTextAt(ListBox1.LastAddedRowIndex, col) = value col = col + 1 Next Loop Until textInput.EndOfFile textInput.Close End IfThis example reads each pair of bytes from a file and writes them in reverse order to a new file. The user chooses the source file using the Open-file dialog box and saves the new file using the Save as dialog box. The EOF property is used to terminate the Do...Loop.
Var readFile As FolderItem = FolderItem.ShowOpenFileDialog("text") If readFile <> Nil Then Var ReadStream As BinaryStream = BinaryStream.Open(readFile, False) ReadStream.LittleEndian = True Var writeFile As FolderItem = FolderItem.ShowSaveFileDialog("", "") If writeFile <> Nil Then Var writeStream As BinaryStream = BinaryStream.Create(writeFile, True) writeStream.LittleEndian = True Do Until ReadStream.EndOfFile writeStream.WriteInt8(ReadStream.ReadInt8) Loop writeStream = Nil End If readStream = Nil End If
Readable.Read
Read(Count As Integer, encoding As TextEncoding = Nil) As String
Reads Count bytes from the input stream and returns a String.
If provided, the optional parameter encoding specifies the text encoding to be defined for the String to be read.
If Count is higher than the amount of bytes currently available in the stream, all available bytes will be returned. Therefore, make sure to always consider the case that you get less than you requested. To see if you received all requested bytes, check the returned string's String property (avoid using Length as it may give a different number if the encoding is not nil).
If not enough memory is available, you get back an empty string.
This example reads the first 1000 bytes from a BinaryStream.
Var readFile As FolderItem = FolderItem.ShowOpenFileDialog("text/plain") If readFile <> Nil Then Var ReadStream As BinaryStream = BinaryStream.Open(readFile, False) ReadStream.LittleEndian = True TextArea1.Text = ReadStream.Read(1000, Encodings.UTF8) End If
Readable.ReadError
ReadError As Boolean
If True then an error occurred during reading.
Notes
If you implement this interface in your application, you must implement the methods with the parameters as shown here.
If an error occurs while reading, a RuntimeException will occur.
Compatibility
Project Types |
All |
Operating Systems |
All |
See also
BinaryStream, IPCSocket, SerialConnection, StdIn, TCPSocket, TextInputStream classes, Writeable interface.