Сообщение от
Эдуард_Н
Предложите свой вариант, в ST. И для меня примером будет. Пробую в ST, но пока тяжело.
В качестве примера:
Код:
PROGRAM PLC_PRG
VAR
// задал 2 номера для теста
asPhoneNumbers: ARRAY [1..c_iPhoneNumberCount] OF STRING(16) := ['79101234567', '','79101234568', '', ''];
sModemPhoneNumbers: STRING;
i: INT;
xCreateString: BOOL;
END_VAR
VAR CONSTANT
c_iPhoneNumberCount: INT := 5;
END_VAR
IF xCreateString THEN
// очищаем строку
MEM.MemFill(ADR(sModemPhoneNumbers), SIZEOF(sModemPhoneNumbers), 0);
FOR i := 1 TO c_iPhoneNumberCount DO
// игнорируем незаданные номера
IF asPhoneNumbers[i] = '' THEN
CONTINUE;
ELSE
sModemPhoneNumbers := OSU.CONCAT4(sModemPhoneNumbers, '+', asPhoneNumbers[i], ';');
END_IF
END_FOR
// после последнего номера не должно быть разделителя
sModemPhoneNumbers[LEN(sModemPhoneNumbers) - 1] := 0;
xCreateString := FALSE;
END_IF