[Archive!] Any rookie question, so as not to clutter up the forum. Professionals, don't pass it by. Couldn't go anywhere without you - 2. - page 311

[Deleted]  
chief2000:

- Is it possible to find out the number of elements of an array in a file? How to avoid unnecessary actions in this case in general?


FileSize(handle) divided by element size = number of elements?
 
Figar0:

FileSize(handle) divided by item size = number of items?

Is this an assumption?

How do you know the size of an item in a binary file? Maybe some part of it is occupied by more than just elements?

 
chief2000:

If you set count too high, you get a lot of null values (right?)

The documentation seems to say

Функция возвращает количество фактически прочитанных элементов.
[Deleted]  
chief2000:

Is this an assumption?

How do you know the size of an item in a binary file? Perhaps some part of it is occupied by more than just the elements?


The size of an item depends on what you are writing there, either 4 or 8. What does your writing process look like?
 
Roger:

The documentation seems to say

If a file has 1000 elements and count=20, it will actually read 20.

But what happens if count=5000?

It's not clear what they mean by "Before reading data the array must be of sufficient size" - it would be easier to read all elements into the array by number of elements, and then if necessary you can truncate the array, etc.

 
Figar0:

The size of the item depends on what you are writing there, either 4 or 8. What does your writing process look like?

I use (writing and reading are two independent steps):

 FileWriteArray( int handle, object array[], int start, int count) 
[Deleted]  
chief2000:

I use (writing and reading are two independent steps):


int FileWriteArray( int handle, object array[], int start, int count)

The function writes the array to a binary file. Arrays like int, bool, datetime and color are written as 4-byte integers. Arrays of type double are written as floating point numbers. 8-byte floating point numbers.

I have outlined what you need to know. If an array of doubles was written to the file, then dividing the file size by 8 will give you the number of array elements in the file.

 
Figar0:

int FileWriteArray( int handle, object array[], int start, int count)

The function writes the array to a binary file. Arrays like int, bool, datetime and color are written element by element as 4-byte integers. Arrays of type double are written as floating point numbers. 8-byte floating point numbers.

I have highlighted what you need to know. If an array double was written to a file, then dividing the file size by 8 will give you the number of array elements in the file.

Now opened one saved file in a text viewer - this is what it looks like:

It looks like it has about 50 elements (there should be about that many elements), but its size is 2432 bytes. Apparently it stores "blanks" in it.

[Deleted]  
Hello all. Please advise. How can I use MQL4 in an indicator in a separate window to draw the histogram not from zero, but from specified values. I want the Ishimoku indicator to draw the values for other timeframes in a separate window.
[Deleted]  
chief2000: Apparently, it stores the "blank" in it.
It stores what you put in it) There are no miracles.