Резольвинг возвращаемых значений... - страница 2 12 Новый комментарий kombat 2008.04.24 00:18 #11 for (i=0; i<ArraySize(siMS); i++) { st="<TR><TD>"+DoubleToStr(i+1, 0)+"</TD><TD>"+ //№ п.п. siMS[i]+"</TD><TD>"+ // Символ DoubleToStr(MarketInfo(siMS[i], MODE_MARGINCALCMODE), 0)+"</TD><TD>"+ // Тип рынка DoubleToStr(MarketInfo(siMS[i], MODE_SPREAD), 0)+"</TD></TR>";// Спред WritingLineInFile(siFileName, st); } И как вставить функцию вместо: DoubleToStr(MarketInfo(siMS[i], MODE_MARGINCALCMODE), 0)+"</TD><TD>"+ // Тип рынка ??? так: strMarketType() + // Тип рынка не проходит номер... Вставить целиком вместо строки? тоже самое... Эх... да пробовал я это, пробовал... ифы тоже, и прочее, я ж писал выше. Строка таблицы то формируется в таком виде: st="текст"+"текст"+"и т.д..." А по предлагаемому так: st="текст"+ФУНКЦИЯ+"и т.д..." Вот и запарился ужо... Так что прошу заранее прощения за возможные мои тормоза. Любые вопросы новичков по Нужна ли функция по Тестирование стратегий по расписанию kombat 2008.04.24 00:23 #12 В общем получается такая картина.. в одном месте кода надо выполнить две функции: - вернуть число символа по MODE_MARGINCALCMODE - затем это число преобразовать в строковый вид, например "Валюты" Первое решаемо довольно просто, а вот второе... 8( Создание робота Вопросы от начинающих MQL5 Полезные функции от KimIV Andrey Khatimlianskii 2008.04.24 00:45 #13 kombat: И как вставить функцию вместо: DoubleToStr(MarketInfo(siMS[i], MODE_MARGINCALCMODE), 0)+"</TD><TD>"+ // Тип рынка ??? Вот так: for (i=0; i<ArraySize(siMS); i++) { st="<TR><TD>"+DoubleToStr(i+1, 0)+"</TD><TD>"+ //№ п.п. siMS[i]+"</TD><TD>"+ // Символ strMarketType()+"</TD><TD>"+ // Тип рынка DoubleToStr(MarketInfo(siMS[i], MODE_SPREAD), 0)+"</TD></TR>";// Спред WritingLineInFile(siFileName, st); } Если первый вариант не работает, можно так: for (i=0; i>ArraySize(siMS); i++) { st= StringConcatenate(">TR<>TD<", DoubleToStr(i+1, 0),">/TD<>TD<", //№ п.п. siMS[i],">/TD<>TD<", // Символ strMarketType(),">/TD<>TD<", // Тип рынка DoubleToStr(MarketInfo(siMS[i], MODE_SPREAD), 0),">/TD<>/TR<");// Спред WritingLineInFile(siFileName, st); } kombat 2008.04.24 01:08 #14 Неа... никак... Видимо это нетривиально-неразрешимая задача для мкл4. А пока СТОП!!! иначе башка распухнет от всего этого... Ещё раз СПАСИБО за помощь...!!! Будут варианты с удовольствием почитаю. Покамест помучаю вариант скрипта где строки задаются по другому. Функцией WriteString // ... WriteString("</TBODY></TABLE>\r\n"); WriteString("<HR>Рапорт<BR>\r\n"); WriteString("\xAE <A href=\"http://net.net/\">ддд</A>"+"<BR>\r\n"); WriteString("</BODY></HTML>"); FileClose(handle); return(0); } //+------------------------------------------------------------------+ void WriteString(string txt) { FileWriteString(handle, txt,StringLen(txt)); } MD5 на MQL4/5 (CryptEncode) Сервис Работа: Нужен ли Открытие по by market Andrey Khatimlianskii 2008.04.24 01:21 #15 kombat: Неа... никак... Видимо это нетривиально-неразрешимая задача для мкл4. Что значит никак?! Что не работает? Какое значение переменной st после выполнения этого кода? Какое должно быть? Я понимаю, голова пухнет... Но останавливаться на таком?! kombat 2008.04.24 01:27 #16 1. задача где расположить саму функцию... перепробовал все уровни, ошибки: '(' - function definition unexpected '}' - unbalanced parentheses 'i' - variable not defined и т.д... всех не перепишеш... 2. Исходя из п.1 значения получить пока нереально. Вот и всех делов. Преременная st в нормальном, своём коде формирует строку, типа: <TR><TD>1</TD><TD>EURJPY</TD><TD>0</TD><TD>-2800.00</TD></TR соответственно проходя по циклу полностью формируется "нутро" таблицы. Функция ICustom Как удалить одинаковые строки Ошибки новичка Andrey Khatimlianskii 2008.04.24 01:30 #17 //------- Внешние параметры скрипта ---------------------------------+ extern string siFileName = "SymbolInfo-FB.htm"; //------- Глобальные переменные скрипта -----------------------------+ string siMS[]={ "AUDCAD", "BO", "AFLRUR" }; //+------------------------------------------------------------------+ void start() { int i; string st; FileDelete(siFileName); st="<DIV>Актуальные на: "+TimeToStr(LocalTime(), TIME_DATE)+" торговые условия в компании "+AccountCompany()+"</DIV><HR>"; WritingLineInFile(siFileName, st); WritingLineInFile(siFileName, ""); st="<TABLE><TR><TH>№</TH><TH>Символ</TH><TH>Рынок</TH><TH>Спрэд</TH></TR>"; WritingLineInFile(siFileName, st); for (i=0; i<ArraySize(siMS); i++) { st="<TR><TD>"+DoubleToStr(i+1, 0)+"</TD><TD>"+ //№ п.п. siMS[i]+"</TD><TD>"+ // Символ strMarketType(siMS[i])+"</TD><TD>"+ // Тип рынка DoubleToStr(MarketInfo(siMS[i], MODE_SPREAD), 0)+"</TD></TR>";// Спред WritingLineInFile(siFileName, st); } WritingLineInFile(siFileName, "</TABLE><HR>"); st="Сформирован файл: "+siFileName; Comment(st); } //+------------------------------------------------------------------+ //| Запись строки в файл | //+------------------------------------------------------------------+ void WritingLineInFile(string FileName, string text) { int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " "); if (file_handle>0) { FileSeek(file_handle, 0, SEEK_END); FileWrite(file_handle, text); FileClose(file_handle); } } string strMarketType( string s ) { switch ( MarketInfo(s, MODE_MARGINCALCMODE) ) { case 0: return("Forex"); case 1: return("CFD"); case 2: return("Futures"); default: return("error!"); } } kombat 2008.04.24 01:31 #18 'i' - variable not defined с этим вроде решил... вынес в глобальные переменные, а до этого она была в старте... kombat 2008.04.24 01:42 #19 Одна из ошибок моих в самой функции: string strMarketType(siMS[i]) вместо string strMarketType( string s ) как надо бы... Вторая, при вызове: strMarketType() вместо strMarketType(siMS[i]) Спасибо за науку! С запятыми вместо плюсов кстати тож не проходило, ругался едитор, мол неверный "," Товарищи помогите плиз найти Уточните плиз... Любые вопросы от ПРОФИ kombat 2008.04.24 01:49 #20 Во втором варианте тож заработало... ;) Как вычищу от мусора, так выложу что получилось. 12 Новый комментарий
И как вставить функцию вместо: DoubleToStr(MarketInfo(siMS[i], MODE_MARGINCALCMODE), 0)+"</TD><TD>"+ // Тип рынка ???
так: strMarketType() + // Тип рынка
не проходит номер...
Вставить целиком вместо строки?
тоже самое...
Эх... да пробовал я это, пробовал...
ифы тоже, и прочее, я ж писал выше.
Строка таблицы то формируется в таком виде: st="текст"+"текст"+"и т.д..."
А по предлагаемому так: st="текст"+ФУНКЦИЯ+"и т.д..."
Вот и запарился ужо...
Так что прошу заранее прощения за возможные мои тормоза.
В общем получается такая картина..
в одном месте кода надо выполнить две функции:
- вернуть число символа по MODE_MARGINCALCMODE
- затем это число преобразовать в строковый вид, например "Валюты"
Первое решаемо довольно просто, а вот второе... 8(
И как вставить функцию вместо: DoubleToStr(MarketInfo(siMS[i], MODE_MARGINCALCMODE), 0)+"</TD><TD>"+ // Тип рынка ???
Если первый вариант не работает, можно так:
Неа... никак...
Видимо это нетривиально-неразрешимая задача для мкл4.
А пока СТОП!!! иначе башка распухнет от всего этого...
Ещё раз СПАСИБО за помощь...!!!
Будут варианты с удовольствием почитаю.
Покамест помучаю вариант скрипта где строки задаются по другому.
Функцией WriteString
Неа... никак...
Видимо это нетривиально-неразрешимая задача для мкл4.
Что значит никак?! Что не работает?
Какое значение переменной st после выполнения этого кода?Какое должно быть?
Я понимаю, голова пухнет... Но останавливаться на таком?!
1. задача где расположить саму функцию...
перепробовал все уровни, ошибки:
'(' - function definition unexpected
'}' - unbalanced parentheses
'i' - variable not defined
и т.д... всех не перепишеш...
2. Исходя из п.1 значения получить пока нереально.
Вот и всех делов.
Преременная st в нормальном, своём коде формирует строку, типа:
<TR><TD>1</TD><TD>EURJPY</TD><TD>0</TD><TD>-2800.00</TD></TR
соответственно проходя по циклу полностью формируется "нутро" таблицы.
Одна из ошибок моих в самой функции:
string strMarketType(siMS[i])
вместо
string strMarketType( string s )
как надо бы...
Вторая, при вызове:
strMarketType()
вместо
strMarketType(siMS[i])
Спасибо за науку!
С запятыми вместо плюсов кстати тож не проходило,
ругался едитор, мол неверный ","
Во втором варианте тож заработало... ;)
Как вычищу от мусора, так выложу что получилось.