Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 3
1

Continue в цикле

27.11.2016, 14:20. Показов 2164. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.

Приборы ОВЕН МСД200 формируют на своей SD карте CSV файла следующего вида:

Время;Канал 1;Канал 2;Канал 3;Канал 4
9:21:53;110;55,1;37;25;25
9:22:03;111;55,2;37,1;25;25
9:22:13;112;55,3;37,2;25;25
9:22:23;113;55,4;37,3;25;25
9:22:33;114;55,5;37,4;25;25

Ниже скрипт, осуществляющий импорт данных из CSV файла в модуль скрипт С# SCADA - системы.

Импорт данных не происходит, диагностический модуль выдает : Строка не распознана как действительное значение DateTime.

Если в CSV файле удалить первую строку (Время;Канал 1;Канал 2;Канал 3;Канал 4) данные импортируются нормально.


Спасибо.









C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using FB;
using System.Linq;
using System.IO;
 
 
public partial class ФБ : ScriptBase
{
bool? M=false;
    public override void Execute()
    {    
    if (Считать==true && M==false && Файл!=string.Empty && Файл!=null)
    {    
    Ошибка=false;
    try
    { 
        using(var file = new StreamReader(Файл)) //открытие файла для чтения
        {
        var line=file.ReadLine();
        while (line!=null)
        {                   
            String[] substrings = line.Split(';'); //разбор строки на составляющие                
            var Time = DateTime.Parse(substrings[0]);
            if (Time==null)
            continue;
            
            for (int i=1;i<=5;i++)
            {
                SetValue("Параметр"+i.ToString(), new PinValue(Double.Parse(substrings[i]),Time));
            
            if (substrings[i]==null)
            continue;
            
            
            }
            line=file.ReadLine();//считывание строк из файла
        }               
        }
    }       
    catch (Exception ex)
        {
            Ошибка=true;
            ReportError (ex.Message); //вызов метода для записи сообщения в лог скады
        }
    }
    M=Считать;
    }
    
    void ReportError (string Error) //данный метод записывает сообщения в лог скады (красная кнопка в правом нижнем углу экрана)
    {
       var ScriptName=HostFB.TreeItemHlp.ToString(); //имя скрипта
       HostFB.TreeItemHlp.Project.ErrorTracer.ReportError(string.Format("{0}: {1}",ScriptName,Error));
    }
    
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2016, 14:20
Ответы с готовыми решениями:

Оператор continue в цикле for
Почему цифра &quot;1&quot; выводится два раза? Разве continue не предполагает пропуск всего оставшегося кода...

Continue после исключения в цикле
try: f = open('links.txt', 'r') teams = {} for link in f: count -= 1 ...

Некорректная работа команды continue в цикле при проверке корректности введенных данных
Доброго времени суток, уважаемые форумчане. Есть программа для определения количества купюр (монет)...

Странное поведение "continue" в цикле
Добрый день. Прошу помощи разобраться в странном поведении continue в цикле. Пишу скрипт,...

4
Эксперт .NET
17685 / 12871 / 3365
Регистрация: 17.09.2011
Сообщений: 21,136
27.11.2016, 14:28 2
Anton_Sergeev, перед 22-й строчкой вставьте такую:
C#
1
file.ReadLine();
Чтобы выбросить первую строку с заголовками.
0
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 3
27.11.2016, 14:37  [ТС] 3
Не помогло, скрипт устанавливает переменную "Ошибка" в TRUE и запись Параметров 1-5 не происходит.
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
27.11.2016, 14:47 4
Лучший ответ Сообщение было отмечено Anton_Sergeev как решение

Решение

38ю строку надо перед 24й поставить
1
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 3
27.11.2016, 18:51  [ТС] 5
Diamante, спасибо. Помогло.
0
27.11.2016, 18:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2016, 18:51
Помогаю со студенческими работами здесь

To be continue or not to be?
Уважаемые любители флейма, да не возбудит в вас мой вопрос к страсти флуду. вопрос. изучаю перл...

Оператор continue
Скажите пожалуйста! Почему, в данной программе у меня не работает оператор Continue.Программа...

Оператор continue.
Помогите:Вывести нечетные числа от 0 до 100, используя оператор continue.

удаление continue
У Дейтлов есть задача: Что здесь имеется в виду под структурированным эквивалентом?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru