Как выделить число из сложносоставной строки? - страница 3

 
Renat Akhtyamov #:

Николай, вопрос у него хороший - парсинг.

Часто бывает нужен, при анализе страниц из интернета.

Мы их не создаем, а читаем.

Вот для парсинга в MQL5 со средствами туговато.

 
JRandomTrader #:

Вот для парсинга в MQL5 со средствами туговато.

поэтому я и загоняю в массив сначала, указывая кодовую страницу

ну а потом все остальное

 
Nikolai Semko #:
 - а зачем стрелять себе в ногу?

Лучше сразу в голову 2 раза…

 
A100 #:

Помимо того, что он не даст правильного результата при отсутствии числа - там есть и принципиальная ошибка. И не одна

Ну, для состряпанного на коленке, вариант лучший из предложенных на первой странице темы…

 
JRandomTrader #:

Вот для парсинга в MQL5 со средствами туговато.

StringToCharArray есть, и этого достаточно
 
Renat Akhtyamov #:

я предлагаю использовать такое

StringToCharArray

Но ведь массив потом надо в цикле перебирать. А тут посимвольно проверяется и получается то же самое


 
Nikolai Semko #:
StringToCharArray есть, и этого достаточно

Очень не хватает perlre или хоть расширенного regex.

 
JRandomTrader #:

Очень не хватает perlre или хоть расширенного regex.

Если бы мне нужен был высокопроизводительный парсинг(а такой только мне и нужен), я бы не использовал бы regular expressions, даже при их наличии, а парсил бы все через char array.
 
Alexey Viktorov #:

Ну, для состряпанного на коленке, вариант лучший из предложенных на первой странице темы…

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

StringToDouble

а не

(double)
 
A100 #:

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

а не

Ну… это для окончательного варианта принципиально, а для «посмотреть» любой вариант пойдёт…

Чем отличается 

if (s=="0" || s=="1" || s=="2" || s=="3" || s=="4" || s=="5" || s=="6" || s=="7" || s=="7" || s=="9")

от 

bool IsNumber(const ushort Char)
 {
  return((Char >= '0') && (Char <= '9'));
 }

Правильно, краткостью. Но о таланте говорить не приходится…