Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Пт мар 29, 2024 02:11

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 7 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Индекс массива на ST - переменная.
СообщениеДобавлено: Пн дек 05, 2016 16:42 
Не в сети

Регистрация: Пн дек 05, 2016 16:33
Сообщения: 3
Индекс массива на ST - переменная. Компилятору не нравится индекс. Если подставляю константу вместо переменной - все проглатывает и работает. Что я делаю не так?

N_Brick:= Sadka.Vagon[N_Sadki].Brick; -ERROR: Line 6: Invalid array index

N_Brick:= Sadka.Vagon[2].Brick; - все хорошо, не ругается.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Индекс массива на ST - переменная.
СообщениеДобавлено: Пн дек 05, 2016 19:03 
Не в сети
Аватара пользователя

Регистрация: Ср ноя 08, 2006 13:01
Сообщения: 373
Откуда: г. Красноярск
Какой контроллер? (кажется это важно)


В начало
 Профиль  
 
 Заголовок сообщения: Re: Индекс массива на ST - переменная.
СообщениеДобавлено: Вт дек 06, 2016 08:17 
Не в сети

Регистрация: Пн дек 05, 2016 16:33
Сообщения: 3
CJ2M CPU33


В начало
 Профиль  
 
 Заголовок сообщения: Re: Индекс массива на ST - переменная.
СообщениеДобавлено: Вт дек 06, 2016 10:32 
Не в сети

Регистрация: Ср мар 04, 2009 11:32
Сообщения: 474
Откуда: Москва
А N_Sadki как переменная определена? И подходящего ли она типа?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Индекс массива на ST - переменная.
СообщениеДобавлено: Вт дек 06, 2016 11:39 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Скорее дело в том, что со структурой контроллер так работать не умеет.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Индекс массива на ST - переменная.
СообщениеДобавлено: Вт дек 06, 2016 12:32 
Не в сети
Аватара пользователя

Регистрация: Ср ноя 08, 2006 13:01
Сообщения: 373
Откуда: г. Красноярск
Нашел в CX-Programmer Help такие строки:
Цитата:
Subscripts of Data Structure Arrays
Either constants or symbols*1 can be used as subscripts of data structure arrays.
Addresses and formulas cannot be used.
*1: Symbols can be used only for the first data structure array.

Похоже если создать массив структур, то номер его элемента может быть переменной (целочисленной), а если внутри элемента массива структур (или просто структурной переменной) есть еще вложенный массив, то выбрать номер его элемента можно только через константу.
Проверил в Задаче и в FB. Так и есть.

Короче, так можно:
Код:
masStruct.mass[3] := 8;
masStruct[5].mass[3] := 8;
masStruct[i].mass[3] := 8;


А так нельзя:
Код:
masStruct.mass[i] := 8;
masStruct[5].mass[i] := 8;
masStruct[i].mass[j] := 8;


В начало
 Профиль  
 
 Заголовок сообщения: Re: Индекс массива на ST - переменная.
СообщениеДобавлено: Ср дек 07, 2016 14:15 
Не в сети

Регистрация: Пн дек 05, 2016 16:33
Сообщения: 3
Так и есть, массив должен быть явно объявлен в FB. Обратиться к элементу массива внутри структуры через переменную не получится. :oops: Не доделали, однако, а жаль. Всем спасибо.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 7 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


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

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 2


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

Найти:
Переход:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3