Скачать MetaTrader 5

Что за ерунда с символом табуляции "\t" ?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Алексей
450
Алексей  

Написал идикатор решил выводимую информацию через

Comment();

вывести в удобочитаемом виде с символами табуляции в итоге получилась ерунда.

Написал простейший тестовый код в результате в Alerte самое последнее сообщение вверху выводится правильно, а это сообщение в истории сообщений уже с ерундой, как и все другие сообщения в истории.

Так и должно быть? По мне так это баг. Проккоментируйте, плиззз.

Да, вот тут в документация на этот счёт https://docs.mql4.com/ru/basis/types/literal

Вот код

#property indicator_chart_window
int init()
  {
   Comment("Тест на выставление символа табуляции вот здесь 2 раза -> \t1\t2", " а теперь новая строка \nэто уже на новой строке 3 раза табуляция \t\t\t777");
   Alert("Тест на выставление символа табуляции вот здесь 2 раза -> \t1\t2", " а теперь новая строка \nэто уже на новой строке 3 раза табуляция \t\t\t777");
   return(0);
  }
  
int deinit()
   {
    Comment("");
    return(0);
   }
Alexey Subbotin
4998
Alexey Subbotin  
Да. Это баг.
Rashid Umarov
Админ
12700
Rashid Umarov  
alsu >>:
Да. Это баг.

Это не баг, в справке по Comment() написано только про перенос строк, и ничего не сказано о табуляции

Для разделения выводимой информации на несколько строк можно использовать символ перевода строки "\n" либо "\r\n".

Алексей
450
Алексей  
Rosh писал(а) >>

Это не баг, в справке по Comment() написано только про перенос строк, и ничего не сказано о табуляции

Допустим, для Comment() табуляция не работает и изначально не предназначалась (что на мой взгляд как-то странно, ну да ладно...)

Но где тогда она работает?, ведь для чего-то написано вот здесь про неё https://docs.mql4.com/ru/basis/types/literal

А с Alert() вообще интересно (см. скрин в 1-м топике) что-то сомневаюсь что так и было задумано, чтобы в верхней часте окна всё выводилось красиво, а в нижней часте с квадратиками вместо табуляции. Т.е. вроде как понимает Alert() этот символ (раз последнее сообщение выводимое в верхней части окна отображает с табуляцией), но в справке про алерт написано тоже только про символ перевода строки "\n" либо "\r\n".

А где можно использовать табуляцию???

Rashid Umarov
Админ
12700
Rashid Umarov  
ALEX_SPB_RU >>:

Допустим, для Comment() табуляция не работает и изначально не предназначалась (что на мой взгляд как-то странно, ну да ладно...)

Но где тогда она работает?, ведь для чего-то написано вот здесь про неё https://docs.mql4.com/ru/basis/types/literal

Откройте Журнал Экспертов (лог файл), там будет табуляция (хотя в самом терминале знаки табуляции отображаются квадратиками).

Алексей
450
Алексей  
Rosh писал(а) >>

Откройте Журнал Экспертов (лог файл), там будет табуляция (хотя в самом терминале знаки табуляции отображаются квадратиками).

Извините за назойливость последний момент хочу выяснить.

1. Так значит при выводе информации, чтобы она выводилась в виде таблички с ровными краями, т.к. выводимые данные будут разной длины (допустим один раз вывожу 25, а в другой 1023) я не смогу это сделать, т.к. именно табуляция позволяет это осуществить (покрайней мере в Си и других языках я так именно и поступал)? Я могу конечно это сделать через объекты... но это из другой оперы.

2. Неужеле так и задумывалось что символ табуляции где-то будет корректно отображаться, а где-то нет??? Или есть какие-то принципиальные трудности???

Спасибо, за оперативную реакцию.

Алексей
450
Алексей  

Да, кстати весь сыр-бор вот из-за этого индикатора (прикрепил ниже).

Стоит его или нет выкладывать в датабас?

Файлы:
Андрей
1890
Андрей  
ALEX_SPB_RU >>:

2. Неужеле так и задумывалось что символ табуляции где-то будет корректно отображаться, а где-то нет??? Или есть какие-то принципиальные трудности???

Спасибо, за оперативную реакцию.

А вот вы знаете, что есть функция TabbedTextOut ? И я не знаю. :-)

А listview с custom draw- если не просто цвет менять у строки- такая гадость!! 

И со всем этим надо сидеть и часа два разбираться! :-)

kombat
3278
kombat  

В мессагбоксе табы работают...

MessageBox("graal\t40\nsum\t120","tab",0);
Алексей
450
Алексей  
kombat писал(а) >>

В мессагбоксе табы работают...

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

Вот и интересна это их избирательность???

А идея была именно через коммент сделать ибо так проще всего, но оказался вот этот самый нюанс.

Rashid Umarov
Админ
12700
Rashid Umarov  
ALEX_SPB_RU >>:

Извините за назойливость последний момент хочу выяснить.

1. Так значит при выводе информации, чтобы она выводилась в виде таблички с ровными краями, т.к. выводимые данные будут разной длины (допустим один раз вывожу 25, а в другой 1023) я не смогу это сделать, т.к. именно табуляция позволяет это осуществить (покрайней мере в Си и других языках я так именно и поступал)? Я могу конечно это сделать через объекты... но это из другой оперы.

2. Неужеле так и задумывалось что символ табуляции где-то будет корректно отображаться, а где-то нет??? Или есть какие-то принципиальные трудности???

Спасибо, за оперативную реакцию.

Могу сказать, что это давно так, с самого начала. Вот ссылки на данную тему:

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий