79 lines
3.0 KiB
Markdown
79 lines
3.0 KiB
Markdown
# FileReadString
|
||
|
||
The function reads a string from the current position of a file pointer in a file.
|
||
|
||
```
|
||
string FileReadString(
|
||
int file_handle, // File handle
|
||
int length=-1 // Length of the string
|
||
);
|
||
|
||
```
|
||
|
||
Parameters
|
||
|
||
file_handle
|
||
|
||
[in] File descriptor returned by [FileOpen()](/en/docs/files/fileopen).
|
||
|
||
length=-1
|
||
|
||
[in] Number of characters to read.
|
||
|
||
Return Value
|
||
|
||
Line read (string).
|
||
|
||
Note
|
||
|
||
When reading from a bin-file. the length of a string to read must be specified. When reading from a txt-file the string length is not required, and the string will be read from the current position to the line feed character "\r\n". When reading from a csv-file, the string length isn't required also, the string will be read from the current position till the nearest delimiter or till the text string end character.
|
||
|
||
If the file is opened with FILE_ANSI [flag](/en/docs/constants/io_constants/fileflags), then the line read is converted to Unicode.
|
||
|
||
Example (the file obtained after executing the example for [FileWriteInteger](/en/docs/files/filewriteinteger) function is used here)
|
||
|
||
```
|
||
//--- display the window of input parameters when launching the script
|
||
#property script_show_inputs
|
||
//--- parameters for data reading
|
||
input string InpFileName="Trend.bin"; // file name
|
||
input string InpDirectoryName="Data"; // directory name
|
||
//+------------------------------------------------------------------+
|
||
//| Script program start function |
|
||
//+------------------------------------------------------------------+
|
||
void OnStart()
|
||
{
|
||
//--- open the file
|
||
ResetLastError();
|
||
int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_BIN|FILE_ANSI);
|
||
if(file_handle!=INVALID_HANDLE)
|
||
{
|
||
PrintFormat("%s file is available for reading",InpFileName);
|
||
PrintFormat("File path: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
|
||
//--- additional variables
|
||
int str_size;
|
||
string str;
|
||
//--- read data from the file
|
||
while(!FileIsEnding(file_handle))
|
||
{
|
||
//--- find out how many symbols are used for writing the time
|
||
str_size=FileReadInteger(file_handle,INT_VALUE);
|
||
//--- read the string
|
||
str=FileReadString(file_handle,str_size);
|
||
//--- print the string
|
||
PrintFormat(str);
|
||
}
|
||
//--- close the file
|
||
FileClose(file_handle);
|
||
PrintFormat("Data is read, %s file is closed",InpFileName);
|
||
}
|
||
else
|
||
PrintFormat("Failed to open %s file, Error code = %d",InpFileName,GetLastError());
|
||
}
|
||
|
||
```
|
||
|
||
See also
|
||
|
||
[String Type](/en/docs/basis/types/stringconst), [Conversion Functions](/en/docs/convert), [FileWriteInteger](/en/docs/files/filewriteinteger)
|