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

 
Alexey Viktorov #:

Каких пояснений? В документации есть пример где символ в одинарных кавычках равен коду символа.

Во всей документации - определенно такой найдётся, но мне вот оказалось сразу не очевидно. Думаю, я не глупей среднего числа пользователей документации.

 
Aleksey Vyazmikin #:

Во всей документации - определенно такой найдётся, но мне вот оказалось сразу не очевидно. Думаю, я не глупей среднего числа пользователей документации.

Я знаю, что ваши способности на много превышают способности многих здешних кодеров с растопыренными пальца́ми. Просто я был удивлён просьбой вносить дополнения в документацию. Так можно документацию превратить в учебник.

 

если выборки только по совпадениям, то есть не важен лексиграф.порядок, то хеш-мап в помощь: код яснее и проще сопровождать :-)

а если ещё и запросы только позитивные (искомое точно есть в массиве и нужно получить ассоциацию), то ещё и быстрее верениц if-else-elseif и StringCompare

 
Alexey Viktorov #:

Там используется код символа. Поэтому 2 и более символа работать не будут. Что Artyom что Alexey будет воспринято одинаково, только код первого символа.

Вопрос был как попасть в литеру. 
 
Alexey Viktorov #:
Просто я был удивлён просьбой вносить дополнения в документацию. Так можно документацию превратить в учебник.

Ну, в документации даётся пример, и я, как пользователь, ожидаю, что он должен быть воспроизводим, т.е. компилироваться и давать какой то результат. Большинство примеров в документации именно такие.

 
Maxim Kuznetsov #:

если выборки только по совпадениям, то есть не важен лексиграф.порядок, то хеш-мап в помощь: код яснее и проще сопровождать :-)

а если ещё и запросы только позитивные (искомое точно есть в массиве и нужно получить ассоциацию), то ещё и быстрее верениц if-else-elseif и StringCompare

Соблазнить пытаетесь на изощрение? :)

Можно примеров чуток?

 
Aleksey Vyazmikin #:

Соблазнить пытаетесь на изощрение? :)

Можно примеров чуток?

документацию можно, с примерами под рукой хуже, у меня работа со строками почти вся внутри DLL ков :-) 

https://www.mql5.com/ru/docs/standardlibrary/generic/chashmap

сделать хеш-map, например ассоциацию строка=>целое (идентификатор или битовая маска, или даже структура/класс) : CHashMap<string,int> mymap; 

накидать туда литералов, например из таблиц или файла: mymap.Add("word1",1); mymap.Add("word2",2); mymap.Add("big sentense",333);

потом оттуда быстро вытащить значение: string key=FileRead(...); int value ; if (mymap.TryGetValue(key,value)) { switch(value) {.....} }

Документация по MQL5: Стандартная библиотека / Шаблонные коллекции данных / CHashMap
Документация по MQL5: Стандартная библиотека / Шаблонные коллекции данных / CHashMap
  • www.mql5.com
Класс CHashMap — шаблонный класс, реализующий интерфейс IMap . Класс CHashMap является...
 
Aleksey Vyazmikin #:

Оператор "StringToEnum" позволил бы решить такую задачу, в ряде случаев требуется.

Ну так и сделайте собственную таблицу соответствий целых чисел строкам

 
Maxim Kuznetsov #:

документацию можно, с примерами под рукой хуже, у меня работа со строками почти вся внутри DLL ков :-) 

https://www.mql5.com/ru/docs/standardlibrary/generic/chashmap

сделать хеш-map, например ассоциацию строка=>целое (идентификатор или битовая маска, или даже структура/класс) : CHashMap<string,int> mymap; 

накидать туда литералов, например из таблиц или файла: mymap.Add("word1",1); mymap.Add("word2",2); mymap.Add("big sentense",333);

потом оттуда быстро вытащить значение: string key=FileRead(...); int value ; if (mymap.TryGetValue(key,value)) { switch(value) {.....} }

Надо погружаться в тему - пока ничего не понял :) Спасибо за уделённое вопросу время!

 
Slava #:

Ну так и сделайте собственную таблицу соответствий целых чисел строкам

Лень нашла иное решение :)))

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