Словари и ElementAt в формулах — ошибка

Стартовая страница Форумы Разработка и интеграция Словари и ElementAt в формулах — ошибка

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Автор
    Записи
  • #6662
    manjey73
    Участник

    Строка 692, колонка 44: error CS1061: «System.Collections.Generic.Dictionary<int,double>.KeyCollection» не содержит определение для «ElementAt». Не удалось найти метод расширения «ElementAt», принимающий первый аргумент типа «System.Collections.Generic.Dictionary<int,double>.KeyCollection» (пропущена директива using или ссылка на сборку?)
    Для ознакомления с исходным кодом см. файл C:\SCADA\ScadaServer\Log\CalcEngine.cs

    Если использовать словарь в VisualStudio то запись вида Словарь.Keys.ElementAt(1) не приводит к ошибке. При компиляции формулы ошибка выше.

    Хотя что в VS сто в файле CalcEngine.cs прописано одинаково

    using System.Collections.Generic;

    #6663
    manjey73
    Участник

    Проблему нашел, нет using System.Linq в CalcEngine, но какого ругается на совсем другое в логах ????

    #6664
    manjey73
    Участник

    Вопрос в догонку, как из формулы узнать путь к папке ScadaServer\config ?

    #6669
    Mikhail
    Модератор

    какого ругается на совсем другое в логах ????

    Такова логика компилятора.

    как из формулы узнать путь к папке ScadaServer\config ?

    Напрямую никак. Рекомендую сделать константу в таблице Формулы.

    #6678
    manjey73
    Участник

    Плохо… но пережить можно. Было бы лучше, если бы не было зависимости с константами, дополнительными каналами в базе и т.д. чтобы работало на автомате и записывала файл в папку config например, где бы не располагалась сама scada.

    Все таки уперся в непонятку, при записи WriteAllLines какого-то перепуга добавляется в файл 3 байта в начале файла от которых не могу избавиться.

    #6680
    manjey73
    Участник

    По аналогии с System.IO.File.WriteAllLines тоже никак не прочесть текущую папку ScadaServer\config ?

    #6687
    Mikhail
    Модератор

    добавляется в файл 3 байта

    Это признак кодировки. Укажите явно нужную кодировку.

    никак не прочесть текущую папку ScadaServer\config

    Переменной для пути к папке из формул не существует.

    #6702
    manjey73
    Участник

    Вопрос решил. Просто по запарке сверял не массивы а их привязки, думал эти 3 байта мешают.
    Все формулы для Retain выложил в разделе «Использование формул»

    Что касается пожеланий по формулам в теме про Администратор — Новые идеи.

Просмотр 8 сообщений - с 1 по 8 (из 8 всего)
  • Для ответа в этой теме необходимо авторизоваться.