Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Выдернуть из пакета нужные данные


Автор: demon87 3.11.2009, 20:22
Всем привет. Кто нить стлкивался со следующей проблемой.
Есть файл, который содержит пакетный данныев следующем виде.
Код

45 00 01 21 7D 16 40 00 67 06 76 7F 40 0C 1C F2  E..!}[email protected]@..?
C0 A8 01 9B 14 46 0F 39 15 F1 90 98 8A 4B 77 E4  ??.?.F.9.??Ш?Kw?
50 18 40 00 D4 10 00 00 2A 02 73 75 00 F3 00 04  P.@.?...*.su.?..
00 07 00 00 91 DD 16 12 00 00 54 0A A9 FD 00 00  ....??....T.й?..
00 02 09 34 36 33 39 32 30 32 34 31 00 00 00 07  ...744448444....
00 01 00 02 00 70 00 06 00 04 10 01 00 10 00 05  .....p..........
00 04 47 C5 B8 C3 00 27 00 04 4A F0 15 0A 00 0F  ..G???.'..J?....
00 04 00 00 79 66 00 03 00 04 4A EF CC 58 00 29  ....yf....J??X.)
00 04 4A F0 15 0A 00 05 00 92 00 00 00 00 54 0A  ..J?.....?....T.
A9 FD 00 00 09 46 13 49 4C 7F 11 D1 82 22 44 45  й?...F.IL.??"DE
53 54 00 00 00 0A 00 02 00 01 00 0F 00 00 27 11  ST............'.
00 6A 1B 00 0A 00 00 00 00 00 00 00 00 00 00 00  .j..............
00 00 00 00 00 00 00 00 03 00 00 00 00 7A C3 0E  .............z?.
00 7A C3 00 00 00 00 00 00 00 00 00 00 00 00 01  .z?.............
00 10 00 04 00 03 00 65 65 00 00 00 00 00 FF FF  .....hello....??
FF 00 26 00 00 00 7B 30 39 34 36 31 33 34 45 2D  ?.&...{0946134E-
34 43 37 46 2D 31 31 44 31 2D 38 32 32 32 2D 34  4C7F-11D1-8222-4
34 34 35 35 33 35 34 30 30 30 30 7D 00 13 00 01  44553540000}....
10                                               .

Точнее надо вытащить "744448444" и "hello"?

Автор: diadiavova 3.11.2009, 23:45
А зачем их вытаскивать, когда они у тебя уже есть?

Автор: KuMa1104 4.11.2009, 11:06
Цитата(diadiavova @  3.11.2009,  23:45 Найти цитируемый пост)
А зачем их вытаскивать, когда они у тебя уже есть?

Я что то тоже непойму.
В программе что заранее известно что нужно вытащить?
Или абсолютно ничего не известно, а нужно что то вытащить?

Поподробнее smile 

Автор: demon87 4.11.2009, 14:45
Извиняйте за буржуйский диалект.
Надо котлеты отделить от мух, т.е. у нас в файле
вот такие данные
Код

45 00 01 21 7D 16 40 00 67 06 76 7F 40 0C 1C F2  E..!}[email protected]@..?
C0 A8 01 9B 14 46 0F 39 15 F1 90 98 8A 4B 77 E4  ??.?.F.9.??Ш?Kw?
50 18 40 00 D4 10 00 00 2A 02 73 75 00 F3 00 04  P.@.?...*.su.?..
00 07 00 00 91 DD 16 12 00 00 54 0A A9 FD 00 00  ....??....T.й?..
00 02 09 34 36 33 39 32 30 32 34 31 00 00 00 07  ...744448444....
00 01 00 02 00 70 00 06 00 04 10 01 00 10 00 05  .....p..........
00 04 47 C5 B8 C3 00 27 00 04 4A F0 15 0A 00 0F  ..G???.'..J?....
00 04 00 00 79 66 00 03 00 04 4A EF CC 58 00 29  ....yf....J??X.)
00 04 4A F0 15 0A 00 05 00 92 00 00 00 00 54 0A  ..J?.....?....T.
A9 FD 00 00 09 46 13 49 4C 7F 11 D1 82 22 44 45  й?...F.IL.??"DE
53 54 00 00 00 0A 00 02 00 01 00 0F 00 00 27 11  ST............'.
00 6A 1B 00 0A 00 00 00 00 00 00 00 00 00 00 00  .j..............
00 00 00 00 00 00 00 00 03 00 00 00 00 7A C3 0E  .............z?.
00 7A C3 00 00 00 00 00 00 00 00 00 00 00 00 01  .z?.............
00 10 00 04 00 03 00 65 65 00 00 00 00 00 FF FF  .....hello....??
FF 00 26 00 00 00 7B 30 39 34 36 31 33 34 45 2D  ?.&...{0946134E-
34 43 37 46 2D 31 31 44 31 2D 38 32 32 32 2D 34  4C7F-11D1-8222-4
34 34 35 35 33 35 34 30 30 30 30 7D 00 13 00 01  44553540000}....
10       

И надо выдернуть, данные которые стоят на мест "744448444" и "hello". На их месте могуь быть другие данные, мы же не знаем какие. Короче нужно из конкретного места вытащить. Если как строку разобрать, то как указать что имено надо выдернуть. Наверняка есть какой - то другой способ. 

Автор: diadiavova 4.11.2009, 14:50
demon87, Вообще-то разъяснения мало что прояснили. Что значит "На их месте"? Если речь о том, что в точно такой же позиции, то метод Substring решит эту проблему, ему надо только указать индекс и длину. А если искать надо по каким-то другим признакам. то изложи их, а то мой хрустальный шар куда-то закатился. smile 

Автор: PashaPash 4.11.2009, 16:07
demon87, открыть через File.OpenRead, отмотать Seek-ом на нужную позицию, прочитать Read-ом байты в массив, превратить их в строку через Encoding.GetString, повторить. Дальше телепатия действительно отказывает :(

Автор: KuMa1104 4.11.2009, 17:00
А я всётаки настаиваю на том что в данном случае надо применить только лиш магию!!!!
Давайте игнорировать то что в у пакетных данных должна быть структура, например чанки с данными.
Долой эти капиталистические  лже науки которые лиш мешают жить простому человеку))

Мир, труд, Май!!!!

Автор: demon87 4.11.2009, 18:32
Излагаю более подробно:
Код

45 00 01 21 7D 16 40 00 67 06 76 7F 40 0C 1C F2  E..!}[email protected]@..ò
C0 A8 01 9B 14 46 0F 39 15 F1 90 98 8A 4B 77 E4  À¨.›.F.9.ñ˜ŠKwä
50 18 40 00 D4 10 00 00 2A 02 73 75 00 F3 00 04  P.@.Ô...*.su.ó..
00 07 00 00 91 DD 16 12 00 00 54 0A A9 FD 00 00  ....‘Ý....T.©ý..
[color=red]00 02 09 34 36 33 39 32 30 32 34 31 00 00 00 07  ...738132111....[/color]
00 01 00 02 00 70 00 06 00 04 10 01 00 10 00 05  .....p..........
00 04 47 C5 B8 C3 00 27 00 04 4A F0 15 0A 00 0F  ..GŸÃ.'..Jð....
00 04 00 00 79 66 00 03 00 04 4A EF CC 58 00 29  ....yf....JïÌX.)
00 04 4A F0 15 0A 00 05 00 92 00 00 00 00 54 0A  ..Jð.....’....T.
A9 FD 00 00 09 46 13 49 4C 7F 11 D1 82 22 44 45  ©ý...F.IL.т"DE
53 54 00 00 00 0A 00 02 00 01 00 0F 00 00 27 11  ST............'.
00 6A 1B 00 0A 00 00 00 00 00 00 00 00 00 00 00  .j..............
00 00 00 00 00 00 00 00 03 00 00 00 00 7A C3 0E  .............zÃ.
00 7A C3 00 00 00 00 00 00 00 00 00 00 00 00 01  .zÃ.............
[color=red]00 10 00 04 00 03 00 65 65 00 00 00 00 00 FF FF  .......ee.....ÿÿ[/color]
FF 00 26 00 00 00 7B 30 39 34 36 31 33 34 45 2D  ÿ.&...{0946134E-
34 43 37 46 2D 31 31 44 31 2D 38 32 32 32 2D 34  4C7F-11D1-8222-4
34 34 35 35 33 35 34 30 30 30 30 7D 00 13 00 01  44553540000}....
10                                               .

45 00 01 21 81 85 40 00 67 06 72 10 40 0C 1C F2  E..!…@.g.r.@..ò
C0 A8 01 9B 14 46 0F 39 15 F1 91 91 8A 4B 78 48  À¨.›.F.9.ñ‘‘ŠKxH
50 18 40 00 96 8D 00 00 2A 02 73 76 00 F3 00 04  P.@.–..*.sv.ó..
00 07 00 00 91 DD 19 1A 00 00 AB D9 50 CC 00 00  ....‘Ý....«ÙPÌ..
[color=red]00 02 09 34 36 33 39 32 30 32 34 31 00 00 00 07  ...859152121....[/color]
00 01 00 02 00 70 00 06 00 04 10 01 00 10 00 05  .....p..........
00 04 47 C5 B8 C3 00 27 00 04 4A F0 15 0A 00 0F  ..GŸÃ.'..Jð....
00 04 00 00 79 67 00 03 00 04 4A EF CC 58 00 29  ....yg....JïÌX.)
00 04 4A F0 15 0A 00 05 00 92 00 00 00 00 AB D9  ..Jð.....’....«Ù
50 CC 00 00 09 46 13 49 4C 7F 11 D1 82 22 44 45  PÌ...F.IL.т"DE
53 54 00 00 00 0A 00 02 00 01 00 0F 00 00 27 11  ST............'.
00 6A 1B 00 0A 00 00 00 00 00 00 00 00 00 00 00  .j..............
00 00 00 00 00 00 00 00 03 00 00 00 00 E4 5A 0E  .............äZ.
00 E4 5A 00 00 00 00 00 00 00 00 00 00 00 00 01  .äZ.............
[color=red]00 10 00 04 00 03 00 72 72 00 00 00 00 00 FF FF  .......rr.....ÿÿ[/color]
FF 00 26 00 00 00 7B 30 39 34 36 31 33 34 45 2D  ÿ.&...{0946134E-
34 43 37 46 2D 31 31 44 31 2D 38 32 32 32 2D 34  4C7F-11D1-8222-4
34 34 35 35 33 35 34 30 30 30 30 7D 00 13 00 01  44553540000}....
10                                               .

45 00 01 21 87 4D 40 00 67 06 6C 48 40 0C 1C F2  E..!‡[email protected]@..ò
C0 A8 01 9B 14 46 0F 39 15 F1 92 8A 8A 4B 78 AC  À¨.›.F.9.ñ’ŠŠKx¬
50 18 40 00 A4 7D 00 00 2A 02 73 77 00 F3 00 04  P.@.¤}..*.sw.ó..
00 07 00 00 91 DD 1D C0 00 00 E0 30 4A 4A 00 00  ....‘Ý.À..à0JJ..
[color=red]00 02 09 34 36 33 39 32 30 32 34 31 00 00 00 07  ...888999....[/color]
00 01 00 02 00 70 00 06 00 04 10 01 00 10 00 05  .....p..........
00 04 47 C5 B8 C3 00 27 00 04 4A F0 15 0A 00 0F  ..GŸÃ.'..Jð....
00 04 00 00 79 69 00 03 00 04 4A EF CC 58 00 29  ....yi....JïÌX.)
00 04 4A F0 15 0A 00 05 00 92 00 00 00 00 E0 30  ..Jð.....’....à0
4A 4A 00 00 09 46 13 49 4C 7F 11 D1 82 22 44 45  JJ...F.IL.т"DE
53 54 00 00 00 0A 00 02 00 01 00 0F 00 00 27 11  ST............'.
00 6A 1B 00 0A 00 00 00 00 00 00 00 00 00 00 00  .j..............
00 00 00 00 00 00 00 00 03 00 00 00 00 92 A1 0E  .............’¡.
00 92 A1 00 00 00 00 00 00 00 00 00 00 00 00 01  .’¡.............
[color=red]00 10 00 04 00 03 00 75 75 00 00 00 00 00 FF FF  .......uu.....ÿÿ[/color]
FF 00 26 00 00 00 7B 30 39 34 36 31 33 34 45 2D  ÿ.&...{0946134E-
34 43 37 46 2D 31 31 44 31 2D 38 32 32 32 2D 34  4C7F-11D1-8222-4
34 34 35 35 33 35 34 30 30 30 30 7D 00 13 00 01  44553540000}....
10                                               .

Надо выдернуть данные, которые я выделил их красным цветом.
Можно через Substring, а длину как, она не постоянная и если эти данные в другом месте.
Если как строку это всприниамать, то можно, как говорил KuMa1104, применить магию работы со строками. Ну это вооще извращение.
А вообще это формат какой? В этих данных те данные, которые  кракозяблики - управляющие
символы наворное.
Пока попробую метод предложенный PashaPash.

Автор: KelTron 4.11.2009, 19:12
Цитата(demon87 @  4.11.2009,  18:32 Найти цитируемый пост)
А вообще это формат какой?

мда....
это напоминает одну из сказок: "Пойди туда, не знаю куда, принеси то, не знаю что"

Автор: KuMa1104 4.11.2009, 21:14
Это взарвало мне мозг smile 
Цитата(demon87 @  4.11.2009,  18:32 Найти цитируемый пост)
А вообще это формат какой? В этих данных те данные, которые  кракозяблики - управляющиесимволы наворное.



demon87 ты написал что у тебя пакетные данные!!!!
Что за пекеты?? Откуда они?
Обычно любые данные имеют структуру которая описывает их содержимое, попробуй в google наколдавать справку о своих "пакетах", иначе это уж слишком жиденько получиться)))

Добавлено через 1 минуту и 34 секунды
Цитата(demon87 @  4.11.2009,  18:32 Найти цитируемый пост)
Излагаю более подробно:

Код

И пошло поехало..............
45 00 01 21 7D 16 40 00 67 06 76 7F 40 0C 1C F2  E..!}[email protected]@..ò
C0 A8 01 9B 14 46 0F 39 15 F1 90 98 8A 4B 77 E4  À¨.›.F.9.ñ˜ŠKwä
50 18 40 00 D4 10 00 00 2A 02 73 75 00 F3 00 04  P.@.Ô...*.su.ó..

Та ещё стёба))))))))))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)