Через макрос очистить память RW

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

Через макрос очистить память RW

Сообщение distren » 16 ноя 2016, 13:12

Здравствуйте!
Задача: Добавлять и выводить в список фамилии.
Как добавлять в список мы разобрались (Фамилии на русском языке). С помощью макроса я сохраняю фамилии в RW, всего сохраняю 20 фамилий в 50 символов.С экрана в LW записываю фамилию русскими буквами.в настройке стоит галка unicode. Через макрос с помощью StringGet(str[0], "Local HMI", LW, 500, 50), StringSet(str[0], "Local HMI", RW, 500, 50) записываю в память.
При изменении строки столкнулись с тем, что предыдущая фамилия частично остается, конечно, если новая строка меньше предыдущей.
В инструкции нет функции очистки памяти или не нашли. Пытались использовать FILL(str[0],0,50),StringSet(str[0], "Local HMI", RW, 500, 50).Добавлять пустую строку тоже не получается.

Подскажите, пожалуйста, как можно затереть без остатка предыдущие данные в RW, если это вообще можно сделать?
Использую EasyBuilder PRO v5.04.01.035 build 2016.06.04, программирую панель MT8102iE
distren
 
Сообщения: 17
Зарегистрирован: 08 июн 2016, 15:52

Re: Через макрос очистить память RW

Сообщение den_po » 16 ноя 2016, 13:25

Код: Выделить всё
short emptystring[50]
FILL(emptystring[0], 0, 50)
SetData(emptystring[0], "Local HMI", RW, 500, 50)
den_po
 
Сообщения: 436
Зарегистрирован: 04 фев 2013, 12:25

Re: Через макрос очистить память RW

Сообщение distren » 16 ноя 2016, 14:01

ё-мое. Как все просто. Спасибо большое.Про это как-то не подумали.
Тогда вопрос. Может и не стоит пользоваться функцией StringSet, StringGet, а достаточно, GetDada, SetData для считывания с экрана строку и записать по адресу?
у меня данные обозначены как char Name[50], может тогда без проблем обозначить как short Name[50]? В последствии не столкнемся с подводными камнями? (по мне так char - это использование ASCII объекта, и используем только функции String).
Если так, то может подскажите на будущее, в каких случаях необходимо использовать только string функции?

Спасибо.
distren
 
Сообщения: 17
Зарегистрирован: 08 июн 2016, 15:52

Re: Через макрос очистить память RW

Сообщение den_po » 16 ноя 2016, 16:56

Строковые работают со строками - наборами символов, завершающимися нулём.
Если у вас строка из 50 слов, то это 100 элементов char либо 50 элементов short. Для юникода я предпочитаю второй вариант, потому что так нет путаницы с длиной.
den_po
 
Сообщения: 436
Зарегистрирован: 04 фев 2013, 12:25


Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 23