Ошибки, баги, вопросы - страница 850

 

подскажите пож. как посредством библиотеки CFileTxt писать новые данные в следующую строку файла, что то не нашел на форуме

#include <Files\FileTxt.mqh>
CFileTxt Txt;
.........

void OnTimer()
 {
   int reshandle=Txt.Open("STScan.csv",FILE_WRITE|FILE_CSV);

       if( reshandle < 1 )
         {Print( "Ошибка открытия файла: " , GetLastError()   );}
       else
         {string text="текст";Txt.WriteString(text);}  

   Txt.Close();
 }

 в таком виде затирает первую строку, а не пишет в следующей

Спасибо 

 
Olegts:

подскажите пож. как посредством библиотеки CFileTxt писать новые данные в следующую строку файла, что то не нашел на форуме

 в таком виде затирает первую строку, а не пишет в следующей

Спасибо 

    int reshandle=Txt.Open("STScan.csv",FILE_WRITE|FILE_CSV);

По идее делать это в OnInit, чтоб не затирался файл

 
Olegts:

подскажите пож. как посредством библиотеки CFileTxt писать новые данные в следующую строку файла, что то не нашел на форуме

 в таком виде затирает первую строку, а не пишет в следующей

Спасибо 


   int reshandle=Txt.Open("STScan.csv",FILE_WRITE|FILE_READ|FILE_CSV);

       if( reshandle < 1 )
         {Print( "Ошибка открытия файла: " , GetLastError()   );}
       else
         {
          Txt.Seek(0,SEEK_END);
          string text="текст";
          Txt.WriteString(text);
         }  

   Txt.Close();
 
uncleVic:

Спасибо, не работает, продолжает перезаписывать первую строчку, может потому, что нет символа перевода каретки, где его здесь проставить?,

жалко, что с документацией на функции из стандартных библиотек все так плохо

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Olegts:

Спасибо, не работает, продолжает перезаписывать первую строчку, может потому, что нет символа перевода каретки, где его здесь проставить?,

жалко, что с документацией на функции из стандартных библиотек все так плохо


Txt.WriteString("\r\n");   // запись перевода каретки
 
Olegts:

Спасибо, не работает, продолжает перезаписывать первую строчку, может потому, что нет символа перевода каретки, где его здесь проставить?,

жалко, что с документацией на функции из стандартных библиотек все так плохо

Это тоже сделали?

 int reshandle=Txt.Open("STScan.csv",FILE_WRITE|FILE_READ|FILE_CSV);
 
uncleVic:

Это тоже сделали?

всем спасибо, заработало
 
Fia:

Добрый день!

Подскажите почему у меня этот код (из справки) вроде отрабатывает (объект создается), а текста я на графике не вижу?

Благодарю за ответ.

...
Может быть у Вас белый цвет текста на белом фоне? :)
 
tol64:
Может быть у Вас белый цвет текста на белом фоне? :)

Благодарю, вас за отклик.

Разобрался вроде (поэтому сообщение удалил).

Если имя объекта "вертикальна линия" совпадает с именем объекта "текст",

то строку которую хочу отобразить с помощью объекта "текст"  не увидеть, она не отображается.

Хотя какая тут связь не понятно объекты же разные (линия и текст)? 

В общем проехали главное заработало.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

перенес в эту ветку, в чайниках не отвечают) 

опять нифига не нашел по работе с файлами, может кто добрый подскажет, как используя CFileTxt организовать цикл, выяснив количество строк в файле и получить значение каждой строки в текстовую переменную?

вроде просто все, но ни статей, ни мануалов по этому поводу нет, или я опять плохо искал( 

в МТ4 кстати, есть хороший пример по работе со строками файла, хорошо бы кто статью какую для МТ5 написал 

 

#include <Files\FileTxt.mqh>

 
........
CFileTxt Txt;
........

int reshandle=Txt.Open(test.csv",FILE_READ|FILE_CSV);
int j=количество строк в текстовом файле;
for (int i=1;i<=j;i++) 
   {
     string line=значение текущей строки i;
   }