[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 352

 
sss2019:


Так почему, я же использую функцию FileReadString, по идее же должна считаться либо вся строка в переменную либо до разделителя и указатель до разделителя первого.

Проще, покажите пожалуйста пример, как из вот такой вот строки файла csv, вытянуть все данные между разделителями?

131322608;EURUSD;2;1;0;0;1346149440


ВЫ вообще УМЕЕТЕ ЧИТАТЬ ??? я все подробно описал выше.

пример : FileOpen ( filename,FILE_CSV|FILE_READ,";");

int FileOpen(string filename, int mode, int delimiter=';')
Открывает Файл для ввода и/или вывода. Возвращает файловый описатель открытого файла или -1 в случае неудачи. Чтобы получить дополнительную информацию об ошибке, необходимо вызвать функцию GetLastError().
Замечания: файлы могут открываться только в папке каталог_терминала\experts\files (каталог_терминала\tester\files в случае тестирования эксперта) или ее подпапках.
Нельзя одновременно использовать режимы FILE_BIN и FILE_CSV.
Если FILE_WRITE не комбинируется с FILE_READ, то будет открыт файл нулевой длины. Даже если до открытия в файле были данные, то они будут уничтожены. Если необходимо дописывать данные в существующий файл, то его нужно открывать, используя комбинацию FILE_READ | FILE_WRITE.
Если FILE_READ не комбинируется с FILE_WRITE, то файл будет открыт только в том случае, если он уже существует. Если файл не существует, то создать его можно, используя режим FILE_WRITE.
Одновременно может быть открыто не более 32 файлов в пределах одного исполняемого модуля. Описатели файлов, открытых в одном модуле, нельзя передавать в другие модули (библиотеки).
Параметры:
filename - Имя файла.
mode - Способ открытия. Это может быть одна величина или их комбинация: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE.
delimiter - Знак разделителя для csv-файлов. По умолчанию применяется символ ';'.

 
FAQ:


НЕ надо отсебятины.

FileReadString() читает до разделителя (если он указан). Если разделитель не указан, или указан не существующий разделитель, то FileReadString() читает до конца строки (символа перевода каретки). Поэтому в приведенном примере FileFlush() указывает на смещение длиной в строку.

StrToInteger() в этом случае выделяет в строке первое попавшееся числовое значение, и преобразует его в тип [int].


То, что читает до разделителя, в этом нет вопросов. Но, вот указатель файла находится в конце строки. Не поленился, написал скрипт. Поэтому и пишу так.

//+------------------------------------------------------------------+
//|                                                          111.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int fileid = FileOpen("File.csv",FILE_CSV|FILE_READ);
    int n1, n2;
      
      string ticket, ticket1;
      
      FileSeek(fileid,0,SEEK_SET);
      
      ticket = FileReadString(fileid);
      Print(ticket," ",FileTell(fileid));
      ticket1= FileReadString(fileid);
      Print(ticket1," ",FileTell(fileid));
      n1= FileReadNumber(fileid);
      Print(n1," ",FileTell(fileid));      
      n2= FileReadNumber(fileid);
      Print(n2," ",FileTell(fileid)); 
//----
   return(0);
  }
//+------------------------------------------------------------------+

Разделитель, как видите, не указан.

06:54:18 111 EURUSD,H1: loaded successfully
06:54:18 111 EURUSD,H1: 131322608 37
06:54:18 111 EURUSD,H1: EURUSD 37
06:54:18 111 EURUSD,H1: 2 37
06:54:18 111 EURUSD,H1: 1 37
06:54:18 111 EURUSD,H1: uninit reason 0
06:54:18 111 EURUSD,H1: removed

 
Mislaid:


06:54:18 111 EURUSD,H1: 131322608 37


StrToInteger() в этом случае выделяет в строке первое попавшееся числовое значение, и преобразует его в тип [int].
 

Здравствуйте! Есть объект типа OBJ_TREND (т.е. трендовая линия), построенный с помощью ObjectCreate.

Вопрос: каким образом можно получить ЧИСЛОВОЕ значение, которое принимает эта трендовая линия в любой момент времени, например, в текущий момент (Time[0])

 
ikatsko:

Здравствуйте! Есть объект типа OBJ_TREND (т.е. трендовая линия), построенный с помощью ObjectCreate.

Вопрос: каким образом можно получить ЧИСЛОВОЕ значение, которое принимает эта трендовая линия в любой момент времени, например, в текущий момент (Time[0])


ObjectGetValueByShift()
 
drknn:

ObjectGetValueByShift()

Спасибо за оперативный ответ?

 
Как используя фнкцию SendMail отправить на почту скриншот сделанный функцией WindowScreenshot?
 
Никак, файл можно отправить на ФТП
 
FAQ:
Никак, файл можно отправить на ФТП

Хоршо.

Тогда с другой стороны подойду.

Можно ли сделать так что бы во входящем письме отображались картинки с ФТП? (т.е. картинка не является вложением, а в письме содержались бы только ссылки на фтп)

 

Гуру, подскажите сову:

Суть такая: прибыль от сделки (пока не закрытой) начинает снижаться (сделку открыл я). При достижении Х% установленного мной от суммы сделки - робот закрывает сделку. В цифрах так примерно: 1$ (уже имеем от сделки) прибыль растет. Сове ставим 80% стоп. Прибыль 1.2$ (так же стоит 80%). Рынок развернулся и при (1.2*80%= 0,96) сова закрыла сделку.

Именно в %, безубыточных сов я нашел там пункты ):

Спасибо.

Причина обращения: