Artem98
Junior Member / Новичок
Участник № / Member № 2308
отправлено / posted
На ST написал такую программу, которая переводит целое число в строку:
code:
PROGRAM VAR_INPUT int_in : INT; END_VAR VAR_OUTPUT str_out : STRING; END_VAR VAR neg : BOOL; END_VAR VAR si : INT; END_VAR VAR str_tmp : STRING; END_VAR
str_out = ''; neg = (int_in<0); if (neg) then int_in = -int_in; end_if; repeat si = int_in mod 10; str_tmp = si; str_out = str_tmp + str_out; int_in = int_in / 10; until (int_in>0) end_repeat; if (neg) then str_out = '-' + str_out; end_if; END_PROGRAM
Я понимаю, что есть автоматический перевод, но всплыла интересная проблема. При вводе в int_in 5-значного числа, например 12345, валится и среда разработки, если запускаю только программу на отладку, и профайлер, если запускаю в профайлере. Для 4-значных чисел и менее - работает корректно. Пробовал на 6.05.1 и на 6.06. Если заменить строки
Artem98
Junior Member / Новичок
Участник № / Member № 2308
отправлено / posted
Дело не в количестве символов. У меня выводит на экран и 5, и 6 символов, если к строке еще дописать что-то текстовое, но не добавляется 5-й символ в числе. Как уже было сказано, "падает" и сама среда разработки, и профайлер.
Сообщения / Posts 6 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
Проблема во множественном присвоении строковой переменной INT'а. Будем исправлять.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |