.NET 4.x Информация с COM порта принимается, нужно передать в массив сортировать и сделать уникальными строки - C#
Формулировка задачи:
Добрый день.
Осуществляю приём информации с устройства на виртуальный COM-порт.
в RitchTextBox1 появляется текст вида(отсортировал сейчас, сам для понимания чтобы, принимаются в произвольном порядке строки в разнобой строки)
Это то что сделал и работает.
Теперь вопрос.
1. Нужно отсортировать
2. Удалить одинаковые строки
3. Вывести подготовленные сортированные строки и уже уникальные строки(без повторов одинаковых строк)
Решение вижу такое, поместить принятые строки в массив, в цикле произвести сортировку и сравнение строк.
Вот написал код ниже, чувствую решение очень близко, но никак не могу поймать идею в коде.
Подскажите пожалуйста ?
Листинг программы
- string InputData = null;
- delegate void SetTextCallback(string text);
- public Form1()
- {
- InitializeComponent();
- }
- private void SetText(string text)
- {
- if (this.richTextBox1.InvokeRequired)
- {
- SetTextCallback d = new SetTextCallback(SetText);
- this.richTextBox1.BeginInvoke(d, new object[] { text });
- }
- else
- {
- this.AddData(text);
- }
- }
- private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
- {
- Thread.Sleep(300);
- byte[] data = new byte[port.BytesToRead];
- port.Read(data, 0, data.Length);
- InputData = Encoding.UTF8.GetString(data);
- if (InputData != String.Empty)
- {
- SetText(InputData);
- }
- }
- private void AddData(string text)
- {
- richTextBox1.AppendText(text);
- }
Листинг программы
- 20F 8 75 3
- 20F 8 75 30 27 10 40 00 3D 55
- 20F 8 75 30 27 10 40 00 3E 54
- 20F 8 75 30 27 10 40 00 3E 64
- 20F 8 75 30 27 10 40 00 3E 95
- 20F 8 75 30 27 10 40 00 3E 9E
- 211 8 F
- 211 8 FF FE 80 00 48 48 00
- 211 8 FF FE 80 00 48 48 00 54
- 211 8 FF FE 80 00 48 48 00 55
- 211 8 FF FE 80 00 48 48 00 9E
- 20F 8 75 3
- 20F 8 75 30 27 10 40 00 3D 55
- 20F 8 75 30 27 10 40 00 3E 54
- 20F 8 75 30 27 10 40 00 3E 64
- 20F 8 75 30 27 10 40 00 3E 95
- 20F 8 75 30 27 10 40 00 3E 9E
- 4B0 8 27 10 27 10 27 10
- 4B0 8 27 10 27 10 27 10 27 10
- 4DA 8 80 00 C0 00 00 00 00 00
- 4DA 8 80 00 C0 00 00 00 00 00
- 4DA 8 80 00 C0 00 00 00 00 00
- 4DA 8 80 00 C0 00 00 00 00 00
- 4DA 8 80 00 C0 00 00 00 00 00
- 4DA 8 80 00 C0 00 00 00 00 00
Листинг программы
- private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
- {
- Thread.Sleep(300);
- byte[] data = new byte[port.BytesToRead];
- port.Read(data, 0, data.Length);
- string[] content = new string[InputData.Length];
- for (int i = 0; i < InputData.Length; ++i)
- {
- // вот тут честно говоря затрудняюсь,
- // как сортировать и сравнить, далее подготовить переменную string для вывода в RichTextBox
- }
- }
Решение задачи: «.NET 4.x Информация с COM порта принимается, нужно передать в массив сортировать и сделать уникальными строки»
textual
Листинг программы
- port.NewLine = Environment.NewLine;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д