собрать число из последовательно вводимых цифр

kostyamat
Offline
Зарегистрирован: 16.11.2017

Ребята, ломаю голову, мучаю Гугл, а решения так пока и не нашел.

Пишу проект, в нем с клавиатуры wiegand 26 приходят коды клавиш в виде int. Мне нужно выводить их в виде строки на экран, и использовать для поиска по БД.

В БД данные хранятся в виде uint32_t.

Для сборки числа из цифр делал просто

String val = "";

void myFunc() {

val += wgKey;

}

void MyFunc2 {

if (aprt.number == val.toInt() {

// тут что-то делаем

}

}

Но почитав "этюды" с памятью при конкатинации стринговых переменных, от Евгений П., понял что программа так долго не проживет, пока стек не налезет на кучу.

Возник вопрос: нужен аналог val += wgKey; для сборки uint32_t числа из цифр клавиш клавиатуры.

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

Подскажите, плиз.

 

kostyamat
Offline
Зарегистрирован: 16.11.2017

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


        val = val * 10;
        val = val + wgKey;

а стираем последнюю цифру так

val = (int)(val / 10);

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Точнее (если ввод символьный) val = val*10 + digit - '0';

kostyamat
Offline
Зарегистрирован: 16.11.2017

не, там коди клавиш в int, тоесть wgKey = 1, 2, 3, 4 и т.д. Клавиша стирания 10, а Энтер = 111, но они в этом всем не участвуют, я их отдельно обрабатываю. И val тоже int. Так что все в порядке.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

kostyamat пишет:

И val тоже int. Так что все в порядке.

ты ж сам говорил, нужен uint32_t.  Значить всё не в порядке. 

kostyamat
Offline
Зарегистрирован: 16.11.2017

DetSimen пишет:

kostyamat пишет:

И val тоже int. Так что все в порядке.

ты ж сам говорил, нужен uint32_t.  Значить всё не в порядке. 


Та не, я имел в виду, что val тоже uint32_t, а вот скан коды byte, но компилятор вроде не матерится.

А int я сказал в общем смысле.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

kostyamat пишет:
А int я сказал в общем смысле.

Ты тока канпилятору так не говори, "в общем смысле". 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

kostyamat пишет:

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

счастливый человек )))