нужна помощь ( работа с массивами и файлами) - страница 2

 
Вопрос, работаем с файлом 1.txt, а указываем FILE_BIN...это корректно?
 
orb:
Вопрос, работаем с файлом 1.txt, а указываем FILE_BIN...это корректно?

а что мешает?
 
Запутался я(
 
for (int i=0;i<=3;i++) xmas[i]=iAC(Symbol(), 0, i*n);

считал с тех. индикатора, как мне теперь это записать в файл, который уже содержит такой же массив с предыдущего бара.
а потом считать из файла весь получившийся массив состоящий из предистории... т.е. xmas получающиеся на предыдущих барах.
 
orb:
Вопрос, работаем с файлом 1.txt, а указываем FILE_BIN...это корректно?

Расширение у файла это только буковки и больше ничего.
 
for (int i=0;i<=3;i++) xmas[i]=iAC(Symbol(), 0, i*n);//заполняем массив значениями индикатора АС
  //дописываем в конец массив xmas
  int h=FileOpen("history.txt",FILE_BIN|FILE_WRITE|FILE_READ);
  if(h<1)
      {
      Print("Файл history.txt не найден : ", GetLastError());
      return(false);
      }
  int size=FileReadInteger(h,LONG_VALUE);
  FileSeek(h,0,SEEK_END);
  FileWriteArray(h,xmas,0,ArraySize(xmas));
  FileSeek(h,0,SEEK_SET);
  FileWriteInteger(h,size+ArraySize(xmas),LONG_VALUE);
  FileClose(h);
Ребят, хочу проверить открываю файл history.txt а он пустой, что неверно в коде...?
 
orb:
Ребят, хочу проверить открываю файл history.txt а он пустой, что неверно в коде...?


Белиберда полная, ГЧЖ в самом что ни на есть лучшем виде. Зачем писать в первый байт размер если вы и так его можете узнать функцией FileSize()?

Не морочте себе голову читайте весь файл в массив, потом добавляйте в массив и пишите весь массив ((увеличенныйна нужное количество байт новыми данными) в новосоздаваемый файл (с перезаписью)) будет и быстрее и проще.

 

Я же говорю ГландыЧерезЖопу. Неужели так тяжело объяснить чего вы хотите глобально ?

Зачем вам писать в массив значения СТАНДАРТНОГО индикатора, если вы и так можете иметь их в любой момент с любого места ?

https://docs.mql4.com/ru/indicators

 
FAQ:

Я же говорю ГландыЧерезЖопу. Неужели так тяжело объяснить чего вы хотите глобально ?

Зачем вам писать в массив значения СТАНДАРТНОГО индикатора, если вы и так можете иметь их в любой момент с любого места ?

https://docs.mql4.com/ru/indicators


Товарищ FAQ, если можете помогите с ответом на вопрос, не тратьте свое время на поиск мне альтернатив подобного плана. Есть вопрос вполне конкретный, нужен конкретный ответ, а не предложения, глобально нужно хранить историю значения тех индикатора- это всего лишь болванка, может тех индикатор смениться на что то другое, возможны преобразования, поэтому проще работать с полученными ранее значениями.
 
for (int i=0;i<=3;i++) xmas[i]=iAC(Symbol(), 0, i*n);//заполняем массив значениями индикатора АС
  //дописываем в конец массив xmas
  int h=FileOpen("history.bin",FILE_BIN|FILE_WRITE|FILE_READ);
  if(h<1)
      {
      Print("Файл history.bin не найден : ", GetLastError());
      return(false);
      }
  FileSeek(h,0,SEEK_END);
  FileWriteInteger(h,ArraySize(xmas),LONG_VALUE);
  FileWriteArray(h,xmas,0,ArraySize(xmas));
  FileClose(h); 
Причина обращения: