- FileReadString reading the Upper case as a Lower case
- CatFX50 Indicators
- ERROR ON FileReadString/FileReadDouble
int file_handle = FileOpen("investing_technical_technical-summary.txt", FILE_READ|FILE_BIN|FILE_ANSI);
You aren't reading a text file.- Perhaps you should read the manual.When reading from a bin-file. the length of a string to read must be specified.
FileReadString - File Functions - MQL4 Reference
Thanks whroeder1,
I have changed my code as follows but still not able to read file. I am getting 5004 Error code.
void OnTick() { Read(); } void Read() { ResetLastError(); int file_handle = FileOpen("investing_technical_technical-summary.txt", FILE_READ|FILE_TXT); if(file_handle!=INVALID_HANDLE) { PrintFormat("%s file is available for reading", "investing_technical_technical-summary.txt"); int str_size; string str; while(!FileIsEnding(file_handle)) { str_size=FileReadInteger(file_handle, INT_VALUE); str=FileReadString(file_handle); Print(str); } FileClose(file_handle); PrintFormat("Data is read, %s file is closed", "investing_technical_technical-summary.txt"); } else PrintFormat("Failed to open %s file, Error code = %d", "investing_technical_technical-summary.txt", GetLastError()); }
It's still wrong go read that documentation.
Function | Action |
Starts the search of files in a directory in accordance with the specified filter | |
Continues the search started by the FileFindFirst() function | |
Closes search handle | |
Opens a file with a specified name and flag | |
Deletes a specified file | |
Writes to a disk all data remaining in the input/output file buffer | |
Gets an integer property of a file | |
Defines the end of a file in the process of reading | |
Defines the end of a line in a text file in the process of reading | |
Closes a previously opened file | |
Checks the existence of a file | |
Copies the original file from a local or shared folder to another file | |
Moves or renames a file | |
Reads arrays of any type except for string from the file of the BIN type | |
Reads from the file of the CSV type a string from the current position till a delimiter (or till the end of a text line) and converts the read string to a value of bool type | |
Reads from the file of the CSV type a string of one of the formats: "YYYY.MM.DD HH:MM:SS", "YYYY.MM.DD" or "HH:MM:SS" - and converts it into a datetime value | |
Reads a double value from the current position of the file pointer | |
Reads a float value from the current position of the file pointer | |
Reads int, short or char value from the current position of the file pointer | |
Reads a long type value from the current position of the file pointer | |
Reads from the file of the CSV type a string from the current position till a delimiter (or til the end of a text line) and converts the read string into double value | |
Reads a string from the current position of a file pointer from a file | |
Reads the contents from a binary file into a structure passed as a parameter, from the current position of the file pointer | |
Moves the position of the file pointer by a specified number of bytes relative to the specified position | |
Returns the size of a corresponding open file | |
Returns the current position of the file pointer of a corresponding open file | |
Writes data to a file of CSV or TXT type | |
Writes arrays of any type except for string into a file of BIN type | |
Writes value of the double type from the current position of a file pointer into a binary file | |
Writes value of the float type from the current position of a file pointer into a binary file | |
Writes value of the int type from the current position of a file pointer into a binary file | |
Writes value of the long type from the current position of a file pointer into a binary file | |
Writes the value of a string parameter into a BIN or TXT file starting from the current position of the file pointer | |
Writes the contents of a structure passed as a parameter into a binary file, starting from the current position of the file pointer | |
Reads all data of a specified binary file into a passed array of numeric types or simple structures | |
Writes to a binary file all elements of an array passed as a parameter | |
Creates a folder in the Files directory | |
Removes a selected directory. If the folder is not empty, then it can't be removed | |
Deletes all files in the specified folder |
If the file is opened for writing using FileOpen(), all subfolders specified in the path will be created if there are no such ones.
- You changed the open from binary to text. You didn't change the reading code.
- FileReadInteger is for reading binary files. You're not. Try number.
- You opened a TXT file, you can't split lines while reading. Try CSV with a separator. Only you know what is in your file.
- You know what the error is. There is no such file in MQL4\Files or tester\files.
Thanks All,
I managed to solved the issue and red the file via same code. The issue was file was not at the correct location as you mentioned in 4 point. I put the file at the location and issue resolved.
I was getting 5004 error and its description written in the documentation is:
5004 | ERR_FILE_CANNOT_OPEN | Cannot open file |
I must say documentation provided for MQL is extremely pathetic and most of the time misleading.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use