Работа со строками

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
wwm
Сообщения: 17
Зарегистрирован: 22 июл 2005, 13:16
Откуда: г. Лангепас

Сообщение wwm » 14 ноя 2007, 08:10

Доброго времени суток!

В Си-блоке не могу присвоить строку переменной типа STR16.

regim="Вентиляция";
------------------^
"bukmainc.c",170 Error[130]: Incompatible operands of '=' operator


Подскажите в чем ошибка?

wwm
Сообщения: 17
Зарегистрирован: 22 июл 2005, 13:16
Откуда: г. Лангепас

Сообщение wwm » 16 ноя 2007, 10:42

Никакие Си-шные "кракозябрики" не помогают!

regim={"Вентиляция";}
------^
"bukmainc.c",243 Error[98]: Primary expression expected

Равиль
Сообщения: 58
Зарегистрирован: 08 фев 2005, 14:48

Сообщение Равиль » 16 ноя 2007, 15:07

STR16 объявлена в DevLib.h как что-то вроде struct {char p[17];};

wwm
Сообщения: 17
Зарегистрирован: 22 июл 2005, 13:16
Откуда: г. Лангепас

Сообщение wwm » 17 ноя 2007, 15:21

Прикольно! А можно как что-то вроде конкретного примера?
И через char пробовал и всяко! Ничего не помогает!
Нужно выводить множество сообщений на BoxPult (динамически, в верхнюю и нижнюю строку пульта). А DEP-овских кубиков можно положить только 512 символов (примерно, как понял)
{/*BUKmainC*/0,0,0,0,{""},{"Вентиляция"},{"разгон дымососа"},{""},{"Закрытие МЭО"},{"газ, возд, разр."},{"Идет"},{"загрузка"},{"Не закрыта"},{"заслонка газа"},{"заслонка воздуха"},{"шибер дымососа"},{"Не закрыт"},{"разгон вентелят."},{"БК дымососа"},{"Не замкнут"},{"БК вентилятора"},FALSE,{"Уст. заслонок"},{"Р воздуха"},{"меньше MIN"},{"Р разрежения"},{"Котел остановлен"},{"Пуск котла - F1"},{"Контроль"},{"герметичности"},{"Прогрев"},{"Работа"},{"Авария"},{"основной цикл"},{"оператором"},{"общекотельного"}
^
"libini.c",219 Error[5]: Too long source line (max is 512 characters); truncated

А нужно вывести лишь в две переменных, когда это нужно, то что требуется.

wwm
Сообщения: 17
Зарегистрирован: 22 июл 2005, 13:16
Откуда: г. Лангепас

Сообщение wwm » 17 ноя 2007, 16:14

В общем помогите, плиз, а то мы больше по Паскалю...

Равиль
Сообщения: 58
Зарегистрирован: 08 фев 2005, 14:48

Сообщение Равиль » 19 ноя 2007, 18:30

А вы попробуйте в разные блоки положить.

wwm
Сообщения: 17
Зарегистрирован: 22 июл 2005, 13:16
Откуда: г. Лангепас

Сообщение wwm » 20 ноя 2007, 17:36

Так и делаю. Но очень неудобно. Куча блоков.

STR16 ведут себя как константы.
Присвоить им значение в коде можно только один раз?

STR16 a = {"12345"}; - здесь все четко.

dep_ConPutStr(&a,false); - здесь тоже! (строка на пульте)

a = {"1";} - а здесь что случилось?
----^
"qqc.c",11 Error[98]: Primary expression expected

Первичное ожидаемое выражение? Что ему не нравится (компилятору)?

Равиль
Сообщения: 58
Зарегистрирован: 08 фев 2005, 14:48

Сообщение Равиль » 20 ноя 2007, 18:02

вместо a = {"1"} нужно
strcpy(a.p,"1");

wwm
Сообщения: 17
Зарегистрирован: 22 июл 2005, 13:16
Откуда: г. Лангепас

Сообщение wwm » 21 ноя 2007, 07:40

Так все работает!
БОЛЬШОЕ СПАСИБО!!!

Klonnis
Сообщения: 8
Зарегистрирован: 18 фев 2016, 18:16
Откуда: Москва
Контактная информация:

Сообщение Klonnis » 18 авг 2020, 16:37

Спасибо!