Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Мини-парсер на C# / 6 сообщений из 6, страница 1 из 1
18.11.2014, 16:46
    #38809848
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мини-парсер на C#
Подскажите как вытащить параметры из текстовой строки, мне нужно знать чему равно sid, и последующие параметры aNum , bNum и т.д. Может в .NET есть какие-то стандартные средства чтобы парсить такие строки?

Пример строки:
Код: c#
1.
 {sid=DATA01, aNum = 12, bNum=1 }


Код: c#
1.
{sid=DATA03, aNum = 3 }


Код: c#
1.
{sid=DATA12}


Код: c#
1.
{}
...
Рейтинг: 0 / 0
18.11.2014, 17:05
    #38809877
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мини-парсер на C#
похоже на JSON
...
Рейтинг: 0 / 0
18.11.2014, 17:37
    #38809923
Alex Antipenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мини-парсер на C#
Eolt,

Код: c#
1.
2.
3.
4.
5.
6.
7.
            string str_data = " {sid=DATA01, aNum = 12, bNum=1 }";

            foreach (string oneDotParam in str_data.Trim("{,}".ToCharArray()).Split(','))
            {
                string[] eq_data = oneDotParam.Split('=');
                Console.WriteLine("{0} -> {1}", eq_data[0], eq_data[1]);
            }
...
Рейтинг: 0 / 0
18.11.2014, 17:45
    #38809939
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мини-парсер на C#
ПрЫмер с Json.
Код: 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.
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Json;


namespace ConsoleApplication7
{
    public class Response
    {
        public string name { set; get; }
        public int id { set; get; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Response));
            Stream ms = new MemoryStream(Encoding.ASCII.GetBytes("{\"name\":\"ololo\" , \"id\":111}"));
            Response objResponse = jsonSerializer.ReadObject(ms) as Response;
            if (objResponse != null)
                Console.WriteLine(String.Format("{0},{1}",objResponse.id, objResponse.name));
        }
    }
}
...
Рейтинг: 0 / 0
18.11.2014, 17:58
    #38809954
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мини-парсер на C#
Код: c#
1.
2.
3.
string str = "{sid=DATA01, aNum = 12, bNum=1 }";
Regex rx = new Regex(@"([^{},\s=]+)\s*=\s*([^{},\s]*)");
MatchCollection matches = rx.Matches(str);



matches[i].Groups[1].Value - имя
matches[i].Groups[2].Value - значение


Но это если такая линейная конструкция, нет вложенных объектов. Иначе надо думать.
...
Рейтинг: 0 / 0
19.11.2014, 11:25
    #38810488
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Мини-парсер на C#
Спасибо помогло! )
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Мини-парсер на C# / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]