Ребят в примере с работой с файлами используется функция CONCAT, если я использую StringUtils то аналог функции будет какой?
Вид для печати
Ребят в примере с работой с файлами используется функция CONCAT, если я использую StringUtils то аналог функции будет какой?
Как сделать чтобы это:
Код:// функция склеивает заданное число строковых переменных, помещенных в массив
FUNCTION CONCAT11 : STRING(255)
VAR_INPUT
asSTR: ARRAY [0..c_MAX_STR] OF STRING;
END_VAR
VAR
sBuffer: STRING; // промежуточная переменная
i: INT; // счетчик для цикла
END_VAR
VAR CONSTANT
c_MAX_STR: INT:=10; // размер массива строковых переменных
END_VAR
работало с WSTRING через библиотеку StringUtils без ограничения длинна строкиКод:FOR i:=0 TO c_MAX_STR DO
sBuffer:=CONCAT(sBuffer, asSTR[i]);
END_FOR
CONCAT11:=sBuffer;
библиотека стандарт используем CONCAT это для STRING, библиотека стандарт64 используем WCONCAT это для WSTRING с ограничением до 255символов
как использовать тогда библиотеку StringUtils и функцию StrConcatW для строки длиньше чем 255 символов?
в стандарт библиотеке там 2стороки и выход 1 строка, StrConcatW в библиотеке StringUtils вообще не понял.
Попроще:
Код:PROGRAM PLC_PRG
VAR
sLongStr1: STRING(4096) := 'длинная строка 1';
sLongStr2: STRING(4096) := 'длинная строка 2';
sVeryLongStr: STRING(8192);
xConcat: BOOL;
END_VAR
IF xConcat THEN
// склеить sLongStr1 и sLongStr2 в sVeryLongStr
STU.StrConcatA(ADR(sLongStr1), ADR(sVeryLongStr), SIZEOF(sVeryLongStr) );
STU.StrConcatA(ADR(sLongStr2), ADR(sVeryLongStr), SIZEOF(sVeryLongStr) );
xConcat := FALSE;
END_IF