Member 13545569 Ответов: 1

Выбор определенной строки из абзаца и извлечение определенного слова из этой строки


У меня есть данные, поступающие из последовательного порта контроллера. Данные представлены в строковом формате и содержат около 20 строк данных. Мне нужно выбрать определенную строку, скажем, строку 6, и извлечь из нее определенное слово.
Мне это нужно в Си#

Пожалуйста, помогите мне с решением

Что я уже пробовал:

Я довольно новичок в программировании. это моя первая попытка выполнить такое требование

Richard MacCutchan

Вам просто нужно изучить обработку строк или символов. Найдите в тексте конечные символы строк, чтобы их можно было разделить на отдельные строки. Затем найдите в каждой строке слово(ы), которое вас интересует.

Karthik_Mahalingam

какова ваша входная строка и ожидаемый результат ?

Member 13545569

Строку ввода:

DT 07-12-17 ч 13 мин 23 С 34
М - -2.00 М 0.00 М+ 7.00 ОК
**CS351**
ВТ - 950 ВТ 1000,36 ВТ+ 1200

Ожидаемый результат. Эти строки/int мне нужно извлечь из приведенных выше строковых данных

-2 0 7 ОК
950 1000.36 1200

1 Ответов

Рейтинг:
0

Karthik_Mahalingam

ОП написал::
Строку ввода:

DT 07-12-17 ч 13 мин 23 С 34
М - -2.00 М 0.00 М+ 7.00 ОК
**CS351**
ВТ - 950 ВТ 1000,36 ВТ+ 1200

Ожидаемый результат. Эти строки/int мне нужно извлечь из приведенных выше строковых данных

-2 0 7 ОК
950 1000.36 1200


using System;

namespace CP
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = "DT 07-12-17 H 13 Min 23 S 34 \n" +
                               " M- -2.00 M 0.00 M+ 7.00 OK \n" +
                                "**CS351** \n" +
                                "W- 950 W 1000.36 W+ 1200";
            string[] lines = input.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
            string output = "";
            foreach (string line in lines)
            {
                string item = line.Trim();
                if (item.StartsWith("M"))
                {
                    output += GetNumbers( item) + " ";
                    if (item.EndsWith("OK"))
                        output += "ok";

                    output += Environment.NewLine;
                }
                if (item.StartsWith("W"))
                {
                    output += GetNumbers( item) + " ";
                    output += Environment.NewLine;
                }

            }
            Console.WriteLine(output );
            //-2 0 7  ok
            // 950 1000.36 1200  


        }

        private static string GetNumbers( string item)
        {
            var parts = item.Split(' ');
            string output = "";
            foreach (string num in parts)
            {
                double d;
                if (double.TryParse(num.Trim(), out d))
                {
                    output += d + " " ;
                }
            }
            return output;
        }

    }
}