Click or drag to resize

FWriteLine Function (IntPtr, String, DWord)

X#
Write a string, a carriage-return character, and a linefeed character to an open file.

Namespace:  XSharp.Core
Assembly:  XSharp.Core (in XSharp.Core.dll) Version: 2.21
Syntax
 FUNCTION FWriteLine(
	ptrHandle AS IntPtr,
	cBuffer AS STRING,
	nBytes AS DWORD
) AS DWORD
Request Example View Source

Parameters

ptrHandle
Type: IntPtr
The handle of the file to write to.
cBuffer
Type: String
The string to write.
nBytes
Type: DWord
The number of bytes in cBuffer to write, beginning at the current file pointer position.
If nBytes is not specified, the value of SLen(cBuffer) is used.

Return Value

Type: DWord
The number of bytes written.
If the value returned is equal to nBytes + 2, the operation was successful.
If the return value is less than nBytes + 2 or 0, this means that the length of cBuffer was less than nBytes, or the disk is full, or another error has occurred.
Remarks
FWriteLine() is a low-level file function that writes data to an open file from a string buffer. You can either write all or a portion of the buffer contents. Writing begins at the current file position, and the function returns the actual number of bytes written. This function is assumed to handle raw binary data and is not dependent upon the status of SetAnsi(). FWriteText() and FWrite4(), on the other hand, are dependent upon SetAnsi().
Remarks
Tip Tip
The low level File IO functions in the X# runtime are using .Net filestreams in the background.
That means that the file handles returned by FOpen() and FCreate() are not 'normal' file handles, but unique identifiers that are used to find the underlying stream object in a collection of streams in the runtime.
That also means that you can't use file handles for functions such as FRead() and FWrite() that were not created in the X# runtime.
If you want to access the underlying FileStream, then you should call the function FGetStream(IntPtr)
Examples
This example uses FWriteLine() to write lines starting at the beginning of a file.
The carriage-return/linefeed pair increase the return value by 2:
X#
1hF := FOpen2("c:\data\sales", FO_READWRITE)
2IF hF != F_ERROR
3    ? FWriteLine(hF, "Line1")        // 7
4    ? FWriteLine(hF, "Line1", 2)    // 4
5ENDIF
See Also