AKC:
Не могу разобраться, помогите.
В начале обработки тика читаю строки из файла, заполняю массив
Затем открываю этот файл на запись с обнулением
внутри просматриваю массив, и как правило снова пишу массив в файл строками через функцию
затем обрабатываю торговые сигналы, и этой же функцией могу дописать строку в файл.
Проблема заключается в том, что когда дописываю по новому сигналу в файл строку к уже существующей в нем... на следующем тике читаю только новую строку. Предыдущая исчезает.
В чем баг, подскажите, плиз.
Не могу разобраться, помогите.
В начале обработки тика читаю строки из файла, заполняю массив
Затем открываю этот файл на запись с обнулением
внутри просматриваю массив, и как правило снова пишу массив в файл строками через функцию
затем обрабатываю торговые сигналы, и этой же функцией могу дописать строку в файл.
Проблема заключается в том, что когда дописываю по новому сигналу в файл строку к уже существующей в нем... на следующем тике читаю только новую строку. Предыдущая исчезает.
В чем баг, подскажите, плиз.
При дописывании в файл следует использовать функции позиционирования int FileTell( int handle); bool FileSeek( int handle, int offset, int origin)
При дописывании в файл следует использовать функции позиционирования int FileTell( int handle); bool FileSeek( int handle, int offset, int origin)
Я пишу/читаю текстовый файл. Побайтово искать смещение затруднительно, т.к. строки разной длины.
А куда ставится указатель при открытии файла? Я ведь для каждой строки снова его открываю.
При дописывании в файл следует использовать функции позиционирования int FileTell( int handle); bool FileSeek( int handle, int offset, int origin)
Спасибо! Помогло.
if (FileSeek(handle, FileSize(handle),SEEK_SET)) int n=FileWrite(handle,Ln);
Теперь пишет в конец файла.
А что же происходило, когда строка писалась в начало? Почему дальше первой строки не читалось?
Спасибо! Помогло.
Теперь пишет в конец файла.
А что же происходило, когда строка писалась в начало? Почему дальше первой строки не читалось?
Кажется понял - в текстовом варианте в конце строки добавляется признак конца файла. Поэтому, если писал строку в начало - то файл как-бы ею и заканчивался. Хотя были строки и дальше.
h=FileOpen("NS_w_"+Symbol()+Period()+"."+ext+"",FILE_WRITE|FILE_CSV,";"); for(int z6=0;z6<((vhodyClose+vhodyOpen+vhodyHigh+vhodyLow+vhodyVolume)*neiro);z6++) { double o=w[z6]; FileWrite(h,o); } FileClose(h); //return;
Вот таким образом сохраняю значения массива w[z6] в файл txt
int handle; handle = FileOpen(FileName1, FILE_CSV|FILE_READ,";"); if(handle>0) { //FileReadArray(handle, w, 0, ((vhodyClose+vhodyOpen+vhodyHigh+vhodyLow+vhodyVolume)*neiro)); FileReadArray(handle, w); int size=ArraySize(w); //--- распечатаем данные из массива for(int ii2=0;ii2<size;ii2++) { Print("w = ",w[ii2]); } Print("Total data = ",size); //--- закрываем файл FileClose(handle); }
Вот таким образом пытаюсь перевести данные из текстового файла в массив w[], но другим советником. А получаю нули. Помогите переделать код, нужно получить правильные данные из файла.
Вот таким образом сохраняю значения массива w[z6] в файл txt
Вот таким образом пытаюсь перевести данные из текстового файла в массив w[], но другим советником. А получаю нули. Помогите переделать код, нужно получить правильные данные из файла.
Если всё это проверяется в тестере, то надо учитывать, что после остановки тестирования, все файлы удаляются. Чтобы не удалялись их надо
писать в общую папку всех терминалов.
При таком открытии:
int handle=FileOpen(filePares,FILE_CSV|FILE_WRITE,' ');
файл полностью очищается.
Надо так:
int handle=FileOpen(filePares,FILE_CSV|FILE_WRITE|FILE_READ,' ');

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не могу разобраться, помогите.
В начале обработки тика читаю строки из файла, заполняю массив
Затем открываю этот файл на запись с обнулением
внутри просматриваю массив, и как правило снова пишу массив в файл строками через функцию
затем обрабатываю торговые сигналы, и этой же функцией могу дописать строку в файл.
Проблема заключается в том, что когда дописываю по новому сигналу в файл строку к уже существующей в нем... на следующем тике читаю только новую строку. Предыдущая исчезает.
В чем баг, подскажите, плиз.