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

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

11.04.2023, 20:46. Показов 5627. Ответов 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,714
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
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 13:41
VladimirU, ты вообще слышишь что тебе говорят?
Толку от того, что ты очищаешь listBox1.Items.Clear();? Ты же потом кидаешь туда список из какого-то PortCOM, в котором непонятно что. Его чистить надо.

Добавлено через 6 минут
А может и точно глюк какой-то в твоей системе. Кинь весь проект лучше сюда, посмотрим.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 13:53
VladimirU, в диспетчере еще посмотри что у тебя с ком портами:
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,714
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
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 14:54
В системе все ок. Значит что-то не так делал в программе.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,714
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
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 14:59
Цитата Сообщение от VladimirU Посмотреть сообщение
Так а тут то что не так можно сделать
тут все правильно и должно работать.
Миниатюры
Не пойму как очистить массив строк  
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,714
13.04.2023, 14:59  [ТС]
wizard41, весь проект
WindowsFormsApplication1.rar
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 15:00
Цитата Сообщение от VladimirU Посмотреть сообщение
хорошо бы добраться до кишков метода SerialPort.GetPortNames()
смысл? он возвращает массив строк с именами портов. Всегда.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 15:03
Цитата Сообщение от VladimirU Посмотреть сообщение
весь проект
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 15:04
VladimirU, сразу говорю - проект чушь несусветная.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,714
13.04.2023, 15:13  [ТС]
Цитата Сообщение от wizard41 Посмотреть сообщение
сразу говорю - проект чушь несусветная.
Ну что сказать я самоучка и всего около трёх недель погряз в C#. Тогда фиг с этим проектом думаю можно забить.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 15:19
VladimirU, проблема одинаковая у всех начинающих: не разобравшись толком в деталях пытаетесь писать что-то "громадное".
Порт открываешь по нажатию выбора в ком-боксе, а закрывает его кто? Никто. Не продумано. Если выбрать другой порт - его не открыть. Обновление списка портов не работает. Только при загрузке формы один раз. Не продумано опять. Ну и так далее...
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,714
13.04.2023, 15:23  [ТС]
wizard41, Так я же только начал разрабатывать и это не окончательный проект, на стадии создания.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 15:30
VladimirU, так начни с малого. Сделай нормальную логику работы с портами. Открыть/закрыть/проверить/обновить. Как это все будет отлажено - иди дальше.

Добавлено через 4 минуты
Цитата Сообщение от VladimirU Посмотреть сообщение
только начал разрабатывать
ты начал заниматься ерундой, а не разрабатывать. Вставлять комичные шрифты и прочую ересь. Украшательствами занимаются уже в полностью отлаженной программе.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,714
13.04.2023, 15:37  [ТС]
Тему начал с одного а закончится полным разносом моей компетентности в вопросах разработки прикладного ПО на C#.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,721
Записей в блоге: 3
13.04.2023, 15:39
Цитата Сообщение от VladimirU Посмотреть сообщение
полным разносом моей компетентности
Конструктивная критика всего лишь. Если хочешь добиться успеха - слушай что говорят.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,714
13.04.2023, 20:06  [ТС]
wizard41, корочи назову его артефакт стандартного класса пространства имён. Вылечил радикально.
C#
1
Application.Restart();
0
2290 / 1606 / 400
Регистрация: 26.06.2017
Сообщений: 4,766
Записей в блоге: 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,714
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
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru