ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / External file functions
  • Handling errors
  • Operating mode in Windows Vista (and later)
  • Position in the file
  • Managing the ANSI/UNICODE format
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Writes a line to an external file. The characters required to go to the next line are automatically inserted at the end of the added line.
Example
WINDEVJavaUser code (UMC)
// Open an external file
MyTextFile is DiskFile
ResWrite is boolean
IF MyTextFile.Open("C:\MyDirectories\File.txt", foReadWrite) = True THEN
// Write a line to this file
ResWrite = MyTextFile.WriteLine("Meeting report")
IF ResWrite = False THEN
...
END
END
Syntax

Writing a line into an external file Hide the details

<Result> = <File used>.WriteLine(<Line to write>)
<Result>: Boolean
  • True if the write operation was performed to the specified file,
  • False if an error occurs. To get more details on the error, use ErrorInfo with the errMessage constant.
<File used>: DiskFile variable
Name of the DiskFile variable initialized with .Open or Create.
<Line to write>: Character string
Line to be written to the file (up to 2GB).
WINDEVJavaUser code (UMC)

Writing a fixed-length line into an external file (speeds up the write operation) Hide the details

<Result> = <File used>.WriteLine(<Address of line to write> , <Size to write>)
<Result>: Boolean
  • True if the write operation was performed to the specified file,
  • False if an error occurs. To get more details on the error, use ErrorInfo with the errMessage constant.
<File used>: DiskFile variable
Name of the DiskFile variable initialized with .Open or Create.
<Address of line to write>: Address
Address of the line to be written to the file.
<Size to write>: Integer
Size in bytes (characters) of the line that must be written (up to 2GB).
This parameter must be less than or equal to the real size of the wine written to the external file. For example, if the size of the line to write is equal to 100 bytes, <Size to write> must be less than or equal to 100 bytes.
If this parameter is less than the real size of the written line, only the specified number of bytes will be written to the text file. The line will be truncated.
Remarks

Handling errors

<DiskFile variable>.WriteLine throws an error in the following cases:
  • the file is not opened,
  • the file is not accessible in write mode,
  • the file is locked by another computer or by another application,
  • no disk space is available.
Caution: <DiskFile variable>.WriteLine can only be used on text files. This function does not support the binary 0 (the write operation is stopped).
WINDEVUser code (UMC)

Operating mode in Windows Vista (and later)

If this function does not operate properly in Windows Vista (and later), check whether the file or directory used is not in one of the system directories (Windows directory or "Program Files" directory).
In Windows Vista (and later), with the UAC mechanism (User Account Control) enabled, you must have administrator privileges to handle and/or modify the files or directories in system directories (Windows directory or "Program Files" directory).
Programming tip: To handle and/or modify the files or directories without administrator privileges, you should:
  • avoid writing to the Windows directory or to the "Program Files" directory,
  • use the system directory of the application (returned by SysDir with the srAppDataCommun constant, for example).
Remark: In Windows Vista (and later), the virtualization mechanism is used to make the applications compatible with Vista. If the file is created in a system directory without having sufficient rights, this file will actually be created in another directory (C:\Users\<LOGIN>AppData\Local\VirtualStore\Windows\). In this case, the file cannot be shared between several applications.

Position in the file

When opening a file, the current position corresponds to:
  • the first file byte (by default),
  • the last byte of the file is the file is opened in "addition" mode (foAdd constant).
This position can be modified by <DiskFile variable>.Seek.
<DiskFile variable>.WriteLine writes the specified elements from the current position. Once <DiskFile variable>.WriteLine has been executed, the current position is set to the last byte written.

Managing the ANSI/UNICODE format

<DiskFile variable>.WriteLine is used to write:
  • a Unicode string in a Unicode file.
  • an Ansi string in an Ansi file.
The file is created or opened with Create/.Open by specifying the file type.
Remarks:
  • The size to be written to a Unicode file must be multiplied by two compared to an ANSI file.
  • If an ANSI string is written to a UNICODE file and vice versa, the conversion will be implicitly performed.
    Format of the string passed as parameter
    External file
    in ANSI format
    (.Open or Create associated with the foAnsi constant)
    External file
    in UNICODE format
    (.Open or Create associated with the foUnicode constant)
    <DiskFile variable>.WriteLine functionANSINo conversion is required before the write operationAutomatic conversion of the string before the write operation
    UNICODEAutomatic conversion of the string before the write operationNo conversion is required before the write operation
In WINDEV and WEBDEV projects, if the "Use ANSI strings at runtime" option is enabled in the project configuration description, the default opening mode is foAnsi (1st column).
In WINDEV and WEBDEV projects, if the "Use UNICODE strings at runtime" option is enabled in the project configuration description, the default opening mode is foUnicode (second column).
In the WINDEV Mobile projects, regardless of the version and mode, the opening mode used by default is foUnicode (second column).
For more details, see Managing UNICODE
Business / UI classification: Business Logic
Component: wd290std.dll
Minimum version required
  • Version 28
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 11/21/2023

Send a report | Local help