Class wwFileStream

The file stream class can be used to buffer large strings incrementally to file. This is one way to allow creating strings that are bigger than 16mb in size.

loFS = CREATEOBJECT("wwFileStream")

loFS.Write("Hello ")
loFs.WriteLine("Rick")

*** Large File
loFS.WriteFile("C:\installs\Distribution CD\Demos\wconnect.exe")

lnSize = loFs.nLength
lcText = loFs.ToString()
lcFile = loFs.cFilename  && GUID.txt

this.MessageOut("Size: " + TRANSFORM(loFs.nLength))
this.AssertTrue( lnSize = LEN(lcText) )

loFs.Clear()
this.AssertTrue( loFs.nLength = 0 )

loFS.Dispose()
this.AssertTrue( !FILE(lcFile) )
Custom
  wwFileStream

Remarks

FoxPro supports access to strings >16mb in a limited fashion. As long as strings are not mutated/changed and are assigned only directly with a single FoxPro operation (like FILETOSTR() or loFs.ToString()) larger than 16mb strings can be used in FoxPro code.

Class Members

MemberDescription

Clear

Clears the stream's buffer and leaves an empty buffer.

o.Clear()

Dispose

Clears the stream and deletes the underlying file that buffers the string data.

o.Dispose()

ToBlob

Returns the content of the file stream as a blob object.

o.ToBlob()

ToString

Returns the content of the stream as a string. Note that this string can potentially be bigger than 16mb in size if stored to a FoxPro variable which works.

o.ToString()

Write

Writes a string to the stream buffer.

o.Write(lcContent)

WriteFile

Writes a file from disk into the memory stream. The file can be a text file or binary file.

o.WriteFile(lcFilename)

WriteLine

Like the Write() method but appends a CRLF to the end of the line.

o.WriteLine(lcContent)

nLength

The current size of the string data stored in the stream.


© West Wind Technologies, 2024 • Updated: 03/01/19
Comment or report problem with topic