Показано с 1 по 10 из 54

Тема: СПК1хх & Сокеты

Комбинированный просмотр

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

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Скажите, а какую функцию можно использовать для супер-длинных строк типа wString?
    StrConcatW

  2. #2

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    StrConcatW
    Странно. Не заметил ее сразу.

    Протестировал.
    Она работала бы. Но вот длину строки 16000 символов она не принимает. Возвращает пустой результат.
    А при длине строки 50 символов - работает нормально.
    Может это как-то связано с тем, что используется не срока, а указатель на буфер?

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

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Может это как-то связано с тем, что используется не срока, а указатель на буфер?
    я бы советовал не заниматься строками на прямую, а брать массив байт и в него складывать свои стоковые пояснения и значения, а посети отправлять указатель на массив
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

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

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Странно. Не заметил ее сразу.

    Протестировал.
    Она работала бы. Но вот длину строки 16000 символов она не принимает. Возвращает пустой результат.
    А при длине строки 50 символов - работает нормально.
    Может это как-то связано с тем, что используется не срока, а указатель на буфер?
    Вообще, размер буфера при вызове функции задается в виде переменной типа INT, так что его максимальное значение 32767 байт.
    Ваши строки по размеру близки к граничным значениям - например, склеить две строки по 16000 символов с помощью этой функции не получится.

    Один из вариантов решения проблемы предложил выше capzap.

    Альтернативный - использовать эту библиотеку:
    https://dropmefiles.com/3g5BL

    В ней есть своя версия функции StrConcatW, где буфер уже типа UDINT и есть ФБ StringWriter, который предназначен как раз для склеивания длинных строк.

  5. #5

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Ваши строки по размеру близки к граничным значениям - например, склеить две строки по 16000 символов с помощью этой функции не получится.
    Сейчас детально посмотрел. Вы правы: при 16000 строка еще работает, а при 20000 - уже не работает.

Похожие темы

  1. UDP + Python + сокеты
    от БугиВуги в разделе Сетевые технологии
    Ответов: 0
    Последнее сообщение: 08.05.2020, 12:17
  2. PLC 110-30 v2 & сокеты
    от lazy в разделе ПЛК1хх [М02]
    Ответов: 50
    Последнее сообщение: 23.11.2018, 15:26
  3. ПЛК100 2.17 не работают сокеты
    от murdemon в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 02.07.2018, 21:15
  4. ПЛК100 + Сокеты
    от ribamuka в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 30.08.2017, 11:55
  5. Возможно ли в режиме эмуляции Codesys тестировать работу через сокеты TCP
    от Денис Бердяев в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 09.10.2014, 07:23

Ваши права

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