Покинул форум
Сообщений всего: 199
Дата рег-ции: Февр. 2017
Репутация: 4
Приветствую, распознаю текст встроенной функцией и получаю строку с английскими буквами и дробным или целым числом. Мне нужно только число. Пытаюсь достать его через formatsn, но получаю ошибку (-10011001) если в строке есть буквы (это как я понял).
Подскажите как избавится от лишних символов или как достать нужное мне число?
Как я понял можно через массив char t[20] и в нем как-то анализировать символы и при необходимости удалять. Верно? Может есть готовый код у кого? Спасибо заранее!
Через распознавание у меня получается string text, а мне нужна строка типа t, чтобы потом ее засунуть в double.
Dantes3000
Отправлено: 29 Мая, 2018 - 20:27:44
Эксперт
Покинул форум
Сообщений всего: 1502
Дата рег-ции: Июнь 2016 Откуда: tg @true_zzz1
Репутация: 58
neba2101 , А что тут должно работать? Ты переводишь текст в число и получаешь -10011001
neba2101
Отправлено: 29 Мая, 2018 - 20:53:05
Мастер
Покинул форум
Сообщений всего: 199
Дата рег-ции: Февр. 2017
Репутация: 4
Dantes3000 пишет:
neba2101 , А что тут должно работать? Ты переводишь текст в число и получаешь -10011001
Гениально! Очень помогло! Спасибо за помощь, Бро! Посмотрите мой пост выше, может уловите суть.
Я не могу понять как мне из этой строки "достать" только число. (Добавление)(для просмотра ссылки Вам необходимо авторизоваться) - нужно распознавать Unit price: 1.7 ea. (вместо 1.7 может быть целое или дробное число или <1).
Я не могу понять как мне из этой строки "достать" только число.
CODE:
string text="unit price: 12.3 ea."; // строка, в которой ищем число
double t;
char a[100];
int pos, len;
strcpy(#a[0], text);
if (findtext(#a[0], #pos, #len, "price: " & " ea")!=-1) // ищем текст между "price: " и " ea"
{
t=formatsn(format(#a[pos], len)); // присваиваем переменной
messagebox(t);
}
Kibor
Отправлено: 30 Мая, 2018 - 16:19:48
Эксперт
Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 359
На этом видео на основе данного изображения я показал как правильно работать с таким текстом. Как использовать некоторые хитрости для того что бы добиться нужного результата надежным и легким путем.
Покинул форум
Сообщений всего: 199
Дата рег-ции: Февр. 2017
Репутация: 4
Kibor пишет:
На этом видео на основе данного изображения я показал как правильно работать с таким текстом. Как использовать некоторые хитрости для того что бы добиться нужного результата надежным и легким путем.
<iframe width="560" height="315" src="https://www.youtube.com/embed/T_VnPENBd24" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Спасибо за помощь и потраченное время! Уже решил задачу немного другим способом. Была проблема с распознаванием. Дробное число распознавалось как 1 .7(с пробелом перед точкой) что вызывало трудности. Все решилось через посимвольное сравнение. Еще раз спасибо за участие!
CODE:
char ch[50];
int r;
string text;
loadsymbolbase ("C:\...путь к базе...\база.sib");
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.