Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/22: Рейтинг темы: голосов - 22, средняя оценка - 4.50
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716

Не пойму как очистить массив строк

11.04.2023, 20:46. Показов 5875. Ответов 101
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Перепробовал все методы но не выходит. Есть переменная string[] PortCOM; она заполняется из метода SerialPort.GetPortNames();
но нужно потом очистить PortCOM. Как это сделать?
C#
1
2
string[] PortCOM;  
PortCOM = SerialPort.GetPortNames();
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2023, 20:46
Ответы с готовыми решениями:

Как очистить таблицу в БД от строк
пробовал ставить на кнопку while (bDDataSet.1.Rows.Count>0) { bDDataSet.1.Rows.RemoveAt(0); } ...

Как очистить массив
Как очистить массив?

Как очистить только первую колонку всех строк в DataGridView не затрагивая другие?
Как очистить только первую колонку всех строк в DataGridView не затрагивая другие ?

101
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
13.04.2023, 13:29  [ТС]
Студворк — интернет-сервис помощи студентам
Накидал несколько строк и результат на лицо
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
namespace WindowsFormsApplication12
{
    public partial class Form1 : Form
    {
 
        public SerialPort _serialPort = new SerialPort();
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            
            listBox1.Items.Clear();
            listBox1.Items.AddRange(SerialPort.GetPortNames());
          
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
            
            _serialPort.Close();
            _serialPort.PortName = "COM3";
            _serialPort.Open();
            
 
        }
    }
}

Буду дома сниму видео.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 13:41
VladimirU, ты вообще слышишь что тебе говорят?
Толку от того, что ты очищаешь listBox1.Items.Clear();? Ты же потом кидаешь туда список из какого-то PortCOM, в котором непонятно что. Его чистить надо.

Добавлено через 6 минут
А может и точно глюк какой-то в твоей системе. Кинь весь проект лучше сюда, посмотрим.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 13:53
VladimirU, в диспетчере еще посмотри что у тебя с ком портами:
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
13.04.2023, 14:52  [ТС]
Это вот с подключенным МК он как COM3 висит видно что есть и в реестре и в диспетчере


А это когда я вытащил МК из ПК.



Тут я не использую промежуточную переменную на напрямую данные пересылаю
C#
1
2
 listBox1.Items.Clear();
            listBox1.Items.AddRange(SerialPort.GetPortNames());
WindowsFormsApplication1.rar

Наверное глюк самой библиотеки Visual Studio 2010
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 14:54
В системе все ок. Значит что-то не так делал в программе.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
13.04.2023, 14:57  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
В системе все ок. Значит что-то не так делал в программе.
Так а тут то что не так можно сделать
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
namespace WindowsFormsApplication12
{
    public partial class Form1 : Form
    {
 
        public SerialPort _serialPort = new SerialPort();
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            
            listBox1.Items.Clear();
            listBox1.Items.AddRange(SerialPort.GetPortNames());
          
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
            
            _serialPort.Close();
            _serialPort.PortName = "COM3";
            _serialPort.Open();
            
 
        }
    }
}
Добавлено через 1 минуту
wizard41, хорошо бы добраться до кишков метода SerialPort.GetPortNames()
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 14:59
Цитата Сообщение от VladimirU Посмотреть сообщение
Так а тут то что не так можно сделать
тут все правильно и должно работать.
Миниатюры
Не пойму как очистить массив строк  
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
13.04.2023, 14:59  [ТС]
wizard41, весь проект
WindowsFormsApplication1.rar
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 15:00
Цитата Сообщение от VladimirU Посмотреть сообщение
хорошо бы добраться до кишков метода SerialPort.GetPortNames()
смысл? он возвращает массив строк с именами портов. Всегда.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 15:03
Цитата Сообщение от VladimirU Посмотреть сообщение
весь проект
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 15:04
VladimirU, сразу говорю - проект чушь несусветная.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
13.04.2023, 15:13  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
сразу говорю - проект чушь несусветная.
Ну что сказать я самоучка и всего около трёх недель погряз в C#. Тогда фиг с этим проектом думаю можно забить.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 15:19
VladimirU, проблема одинаковая у всех начинающих: не разобравшись толком в деталях пытаетесь писать что-то "громадное".
Порт открываешь по нажатию выбора в ком-боксе, а закрывает его кто? Никто. Не продумано. Если выбрать другой порт - его не открыть. Обновление списка портов не работает. Только при загрузке формы один раз. Не продумано опять. Ну и так далее...
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
13.04.2023, 15:23  [ТС]
wizard41, Так я же только начал разрабатывать и это не окончательный проект, на стадии создания.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 15:30
VladimirU, так начни с малого. Сделай нормальную логику работы с портами. Открыть/закрыть/проверить/обновить. Как это все будет отлажено - иди дальше.

Добавлено через 4 минуты
Цитата Сообщение от VladimirU Посмотреть сообщение
только начал разрабатывать
ты начал заниматься ерундой, а не разрабатывать. Вставлять комичные шрифты и прочую ересь. Украшательствами занимаются уже в полностью отлаженной программе.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
13.04.2023, 15:37  [ТС]
Тему начал с одного а закончится полным разносом моей компетентности в вопросах разработки прикладного ПО на C#.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
13.04.2023, 15:39
Цитата Сообщение от VladimirU Посмотреть сообщение
полным разносом моей компетентности
Конструктивная критика всего лишь. Если хочешь добиться успеха - слушай что говорят.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
13.04.2023, 20:06  [ТС]
wizard41, корочи назову его артефакт стандартного класса пространства имён. Вылечил радикально.
C#
1
Application.Restart();
0
2298 / 1614 / 400
Регистрация: 26.06.2017
Сообщений: 4,779
Записей в блоге: 1
14.04.2023, 11:46
Лучший ответ Сообщение было отмечено VladimirU как решение

Решение

VladimirU, пробуйте
Кликните здесь для просмотра всего текста
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using System;
using System.Collections;
using System.IO.Ports;
using System.Timers;
using System.Windows.Forms;
 
namespace SerialPortDemo
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
 
    private SerialPort _serialPort = new SerialPort();
    private System.Timers.Timer _timer = new System.Timers.Timer();
    private bool portCheking;
    private bool portWasOpened;
    private string[] portNames;
 
    public delegate void CheckPort();
 
    private void Form1_Load(object sender, EventArgs e)
    {
      UpdatePortsState();
      _timer.Interval = 1000;
      _timer.Elapsed += new ElapsedEventHandler(timer_Tick);
      _timer.Start();
    }
 
    public void timer_Tick(Object sender, ElapsedEventArgs e)
    {
      if (!portCheking) //чтение portCheking из разных потоков допустимо
        this.BeginInvoke(new CheckPort(UpdatePortsState));
    }
 
    private void UpdatePortsState()
    {
      portCheking = true;
      UpdatePortNames();
 
      if (portWasOpened && (_serialPort.IsOpen == false))
      {
        MessageBox.Show("Порт закрылся");
        portWasOpened = false;
      }
      portCheking = false;
    }
 
    private void UpdatePortNames()
    {
      if (!StructuralComparisons.StructuralEqualityComparer.Equals(portNames, SerialPort.GetPortNames()))
      {
        portNames = SerialPort.GetPortNames();
        listBox1.Items.Clear();
        listBox1.Items.AddRange(portNames);
      }
    }
 
    private void button2_Click(object sender, EventArgs e)
    {
      if (listBox1.SelectedItem != null)
      {
        _serialPort.Close();
        _serialPort.PortName = listBox1.SelectedItem.ToString();
        _serialPort.Open();
        portWasOpened = _serialPort.IsOpen;
        MessageBox.Show("Порт открыт");
      }
    }
 
  }
}

Делегата для передачи данных можно подписать единожды в Form1_Load.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,716
14.04.2023, 13:48  [ТС]
Uswer,

C#
1
if (!StructuralComparisons.StructuralEqualityComparer.Equals(portNames, SerialPort.GetPortNames()))
Не могу понять смысл этого выражения? Сравнения строк?

Добавлено через 18 минут
Uswer, Не прокатило опробовал ваш код всё тоже самое проблема осталась.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2023, 13:48

Как очистить статический массив?
у меня в классе обявлен статический массив - static overall_data* array_persone; после класса задаю размер overall_data*...

Как очистить массив выделеной памяти
#include <iostream> #include <string.h> #include <cstdlib> using namespace std; int main() { int koltest; int...

Как очистить статический массив структур?
structure A { char name; int weight; }; A B; В массив "В" я считал текстовый файл, теперь его нужно очистить что-бы считать...

Как очистить или удалить массив BitmapImage
Создаю галерею картинок. В массив из БД определенного раздел записываю urlы картинок. Все работает хорошо. Проблема в том что массив ни...

Можно ли очистить новый массив от нулей и как
Вообщем вот задание: Дан целочисленный массив A размера N. Переписать в новый целочисленный массив B все четные числа из исходного массива...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru