// входящие данные
string data = "0x00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 39 ..............09";
// получаем позицию первой найденной точки
int endIndex = data.IndexOf(".");
// получаем позицию первого вхождения символов 00
// с конца строки начиная с endIndex
int startIndex = data.LastIndexOf("00", endIndex) + 2; // + размер искомых символов
// выделяем часть строки и удаляем лишние пробелы по бокам
string result = data.Substring(startIndex, endIndex - startIndex).Trim();
// выводим результат
Console.WriteLine(result);
// можно одной строкой написать, но так проще понять
string data = "0x00 00 00 00 00 00 00 00 00 00 00 00 00 3D 12 7E ..............01";
string result = data.Replace("0x", "").Replace("00", "").TrimEnd("0123456789.".ToCharArray()).Trim();
Console.WriteLine(result);
string data = "0x00 00 00 00 00 00 00 00 00 00 00 00 00 3D 12 7E ..............00";
string result = data.Substring(2).TrimStart("0 ".ToCharArray()).TrimEnd("0123456789.".ToCharArray()).Trim();
Console.WriteLine(result);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Newtonsoft.Json;
namespace WpfApplication9
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Data data = JsonConvert.DeserializeObject<Data>(json);
foreach (Item item in data.Response.Items)
{
listBox1.Items.Add(new ListBoxItem() { Content = item });
}
}
class Data
{
public Response Response;
}
class Response
{
public int Count;
public Item[] Items;
}
class Item
{
public int Id;
public int Owner_id;
public string Artist;
public string Title;
public int Duration;
public string Url;
public int Genre_id;
public override string ToString()
{
return string.Format("{0} ({1})", Title, Url);
}
}
string json = @"{
""response"":{
""count"":198,
""items"":[
{
""id"":340125039,
""owner_id"":34254853,
""artist"":""IOWA"",
""title"":""Маршрутка"",
""duration"":190,
""url"":""http:\/\/cs7-5v4.vk-cdn.net\/p12\/630de313d73392.mp3?extra=fNremCtKgl4pnCbyZ0q-LOBIfvRoUf5QGo8oWwYrOCza6AlSUOdYIImUideFd3hpPa325ckSD_c3zQ5FNluMS80lrSJiM6FC"",
""genre_id"":9
},
{
""id"":340120602,
""owner_id"":34254853,
""artist"":""Stromae"",
""title"":""Tous Les Memes"",
""duration"":168,
""url"":""http:\/\/cs7-1v4.vk-cdn.net\/p18\/600b1a66ef64d6.mp3?extra=GNP79R4nHR39dY50YJ_ddDxEuX6SQcxtG3nCgzI0LdvxoaLh5lQ2qZqqpABCqPoXOISyNzWOqMZx4_nTL3bQ31i57z-UXl4V"",
""lyrics_id"":99395752
}
]
}
}";
}
}
internal static class Serializer
{
internal static void Serialize<T>(this T arg, string fileName)
{
string res = JsonConvert.SerializeObject(arg, Formatting.Indented);
File.WriteAllText(fileName,res);
}
internal static T Deserialize<T>(string fileName)
{
string json = File.ReadAllText(fileName);
T res = JsonConvert.DeserializeObject<T>(json);
return res;
}
}
public class Item
{
...
public string title{get; set;}
public string url{get;set;}
...
}
public class Response
{
public int count{get;set;}
public List<Item> items{get; set;}
}
string pathToFIle = @"C:\temp\anyFile";
Response response = Serializer.Deserialize<Response>(pathToFile);
String[] titles = response.items.Select(item => item.title).ToArray(); // Массив названий
String[] urls = response.items.Select(item => item.url)ToArray(); // Массив адресов
на примерах не увиделтак вы поставьте себе задачу какую-нибудь
Георгий Могелашвили | Паттерны проектирования- там примеры про утки, да про машинки, а на деле я применил, точнее попытался применить, на реальной задаче которую мне надо было решить по работе, с дедлайном и, как всегда, с предшествующим ему авралом. Но боевая задача состояла в дописании (но это же не круто - круто все переписать, в последний раз, по-человечески, по-моему!) pdf-парсера и синхронизации результатов его работы с бд. Если я сделаю туториал по паттернам рассматривая в качестве примера наш парсер, то никто не поймет сути паттерна, все поймут суть парсинга pdf-ок, т.к. этот пример очень частный. А для обучения нужно абстрагироваться, акцентируя только на профитах конкретного паттерна. Попробуйте переделать прошлый проект какой-нибудь, хоть и небольшой. Ценится умение правильно подбирать паттерн к стоящей задаче. Без граблей не получится. Будем верить, что с опытом мы все поймем.
Any calls to Play, Pause, and Stop methods that occur before the MediaOpened event is raised are ignored.