.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;