Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Языки программирования в TRACE MODE 6 / Algorithm Programming Languages » Проблема конкатенации строк

   
Автор / Author Тема / Topic: Проблема конкатенации строк
Artem98
Junior Member / Новичок
Участник № / Member № 2308


Icon 4 отправлено / posted      Профиль для / Profile for Artem98           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
На 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.
Если заменить строки
code:
	str_tmp = si;
str_out = str_tmp + str_out;

на
code:
	str_out = si + str_out;

то число -12345 преобразуется в -2345.
Подскажите, в чем дело?

Сообщения / Posts 6 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
По умолчанию аргумент STRING содержит только 4 символа. Чтобы содержал больше:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/000459.html

Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Artem98
Junior Member / Новичок
Участник № / Member № 2308


Icon 1 отправлено / posted      Профиль для / Profile for Artem98           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Дело не в количестве символов. У меня выводит на экран и 5, и 6 символов, если к строке еще дописать что-то текстовое, но не добавляется 5-й символ в числе. Как уже было сказано, "падает" и сама среда разработки, и профайлер.
Сообщения / Posts 6 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Проблема во множественном присвоении строковой переменной INT'а. Будем исправлять.
Сообщения / Posts 17109 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2