Показано с 1 по 5 из 5

Тема: OSU.ReplaceSubstring и входные переменные более 255 символов

  1. #1

    Question OSU.ReplaceSubstring и входные переменные более 255 символов

    Добрый день!

    Нужно сделать замену подстроки в переменной типа String(2047)
    Что можно придумать, чтобы не городить кучу новых самописных функций?

    Спасибо заранее!

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,230

    По умолчанию

    Цитата Сообщение от aaaSashaMGGU Посмотреть сообщение
    Добрый день!

    Нужно сделать замену подстроки в переменной типа String(2047)
    Что можно придумать, чтобы не городить кучу новых самописных функций?

    Спасибо заранее!
    Добрый день.
    См. функцию StrReplaceA из библиотеки StringUtils.
    Хотя в сигнатуре указан тип POINTER TO STRING(255) - насколько я помню, она работает со строками, длину которых можно представить типом INT (т.е. до 32 767 символов).

  3. #3

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.
    См. функцию StrReplaceA из библиотеки StringUtils.
    Хотя в сигнатуре указан тип POINTER TO STRING(255) - насколько я помню, она работает со строками, длину которых можно представить типом INT (т.е. до 32 767 символов).
    Функция порвала мне мозг, но я её победил...
    Спасибо!
    Всё работает. Вот, если кому надо:
    Код:
    //Заменяем в команде текст имени БД с 58 символа 9 символов на sBD_Name_UTF8
    StrReplaceA(ADR(sCommand_Real), SIZEOF(sCommand_Real), ADR(sBD_Name_UTF8), SIZEOF(sCommand_Real), 9, TO_INT(STU.StrLenA(ADR(sBD_Name_UTF8))), 58);
    Замечу, что это вот ни разу не аналог OSU.ReplaceSubstring, т.к., OSU.ReplaceSubstring заменяет указанную подстроку на другую указанную подстроку
    StrReplaceA же заменяет в строке ряд символов на другой ряд символов, начиная с определённого символа в требуемом количестве символов (кто понял - молодец)
    Соответственно, если заранее символ, с которого надо менять, неизвестен - то придётся сильно извернуться. У меня он известен - так что, у меня всё ОК

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,451

    По умолчанию

    в плк есть питон с requests можно просто набрать команду 'python3 app.py value1 value2' а в коде взять аргументы и вставить/заменить их в любые места какого угодно шаблона текста и отправить куда нужно, а контроллеру заниматься непосредственно технологическим процессом
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    в плк есть питон с requests можно просто набрать команду 'python3 app.py value1 value2' а в коде взять аргументы и вставить/заменить их в любые места какого угодно шаблона текста и отправить куда нужно, а контроллеру заниматься непосредственно технологическим процессом
    Так контроллер ведь как раз и отправляет команду во внешнюю линуксовую консоль. Так не всё ли равно, что он будет делать: слать SQL-команду через bsqldb, либо запускать питоновский скрипт, который уже отправит тот же самый SQL-запрос?
    Так или иначе, я, кажется, нашёл более компактное и простое решение для отправки ОГРОМНЫХ SQL-запросов: см. мою тему https://owen.ru/forum/showthread.php?t=39810
    Последний раз редактировалось aaaSashaMGGU; 11.06.2024 в 22:19.

Похожие темы

  1. CmpSysExec.SysExecute4 и команда более 255 символов
    от aaaSashaMGGU в разделе ПЛК2хх
    Ответов: 5
    Последнее сообщение: 13.06.2024, 14:15
  2. Ответов: 3
    Последнее сообщение: 26.03.2019, 12:31
  3. Входные цепи ТРМ1
    от edv в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 10.07.2012, 13:45
  4. Входные переменные в массив
    от kuguar в разделе ПЛК1хх
    Ответов: 12
    Последнее сообщение: 06.06.2011, 08:25
  5. Ответов: 8
    Последнее сообщение: 22.02.2010, 13:08

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •