|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
|
Обработка пакетов23.01.2019, 02:50. Показов 5871. Ответов 48
Метки нет (Все метки)
Здравствуйте!
Как реализовать следующую задачу: Есть файл с переданными пакетами. Длина пакетов 1936 байт. Но может быть и меньше в случае передачи пакета с ошибкой. - Первые 2 байта каждого пакета синхронизация (в десятичном представлении: 8 2). - 1935 и 1936 байт имеют вид 0 1 или 1 0. - 1930 байт счётчик пакетов (от 0 и до...). Нужно: 1) Выбрать пакеты длиной 1936 байт начало которых 8 2 и окончание 0 1 либо 1 0. 2) Удалить повторяющиеся пакеты. 3) Отсортировать по счётчику (1930 байт). 4) Удалить Байты синхронизации (8 2) и 7 байт в конце каждого пакета. 5) Сохранить в файл.
0
|
|
| 23.01.2019, 02:50 | |
|
Ответы с готовыми решениями:
48
Отправка пакетов Перехват пакетов Разбор AVL пакетов GPS |
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
|
| 25.01.2019, 04:16 [ТС] | |
|
northener, объясните тупому. Буду знать.
Программирование это не моя профессия, поэтому и прошу помочь. Добавлено через 1 час 21 минуту Нашёл, что в Делфи 7 нет Generics.Collections. В этом причина?
0
|
|
|
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
|
||
| 25.01.2019, 04:24 | ||
|
0
|
||
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
|
| 25.01.2019, 04:29 [ТС] | |
|
Nanotentacle, спасибо огромное. Но легче не стало...
0
|
|
|
|
||||||
| 25.01.2019, 10:33 | ||||||
|
ну собсно ничего не поменяется принципиально-то.
Но нелицензионную Д7 я бы поменял на лицензионную бесплатную Delphi 10.3 CE вот вариант, который будет работать и в D7 Сильно помогло вам? Кликните здесь для просмотра всего текста
Добавлено через 25 секунд P.S. не проверял вообще
0
|
||||||
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
|
| 25.01.2019, 14:00 [ТС] | |
|
krapotkin, Спасибо огромное за проделанную работу. Буду потихоньку разбираться.
Конечно очень много не понятно. Как правильно обращаться к элементам списка? (для вывода их например в StringGrid)
0
|
|
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
|
| 25.01.2019, 16:09 [ТС] | |
|
krapotkin, конечно я уже достал Вас, но не могли бы привести пример вывода хотя бы одного элемента в Memo?
0
|
|
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
|
| 25.01.2019, 17:06 [ТС] | |
|
В том в котором они хранятся в List если можно.
0
|
|
|
|
|
| 25.01.2019, 18:39 | |
Сообщение было отмечено Alex99999 как решение
Решение
в листе хранятся ссылки на объекты, каждый из которых загружен из файла
т.е. N раз по 1936 байтов как вы хотите их смотреть?? просто 1936 шестнадцатиричных чисел вывести на экран ?
1
|
|
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
|
| 25.01.2019, 21:06 [ТС] | |
|
krapotkin, спасибо огромнейшее. Сам бы я никогда не решил подобную задачу. А почему в Memo 12 раз
выводится 1-ый пакет, а где остальные?
0
|
|
| 26.01.2019, 02:22 | ||
|
Не по теме:
Я вот например не прошу на форуме сантехников помочь мне заменить смеситель в ванной надеясь что кто-то из участников того форума приедет ко мне домой и заменит его бесплатно. :)
0
|
||
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
|
| 26.01.2019, 04:16 [ТС] | |
|
northener, да я конечно понимаю, что это перебор. Но для меня данная тема - это тёмный лес (да как впрочем и всё программирование), а времени не особо. А программа реализующая вышеперечисленный алгоритм очень нужна.
Добавлено через 1 час 26 минут Сам я делал так: 1 При загрузке файла переводил значение байт в двоичный вид (в S:String) 2 Находил позицию 0000100000000010 (8 2 в десятичной) 3 Копировал в StringList 15478 бит начиная с позиции 0000100000000010-(синхронизация) 4 Находил позицию 000000000000001 (0 1 в десятичной) либо 000000100000000 (1 0 в десятичной)-(2 байта в конце) 5 Делал проверку если очередная строка StringList с позиции 15472 = 000000000000001 либо 000000100000000, то оставлял строку если нет, то удалял. 6 В другой StringList копировал информацию начиная с 17 бита вместе со счётчиком (длина строки 15424 бита) 7 Удалял повторяющиеся строки На этом у меня всё остановилось (уже сам начал путаться в том что нагородил), поэтому и обратился на данный форум. Далее по идее нужно: 1 отсортировать все строки по последним 8 битам (номер пакета в общем блоке) 2 Ну и собственно удалить эти 8 бит и сохранить в файл Может загрузить полученные строки в десятичном виде в StringGrid и отсортировать по последнему 1928 байту? Опять же: моих знаний явно не хватит для этого. Как можно упростить данную ересь, наверняка,то что я написал делается гораздо короче. С массивами в отпуске буду разбираться.
0
|
|
|
|
||
| 26.01.2019, 09:09 | ||
Сообщение было отмечено Alex99999 как решение
Решениевот исправленный вариант но дальше вам придется либо нанять программиста либо разобраться самому отвечать на вопросы тут все готовы но у вас нет конкретных вопросов, а только ТЗ...
1
|
||
|
|
||||||
| 26.01.2019, 09:12 | ||||||
Сообщение было отмечено Alex99999 как решение
Решение
вариант с переводом в двоичный вид - совсем плох
байт это просто число. не требуется его никуда переводить если сказано что байт=8, а следующий = 2, вот собсно и
1
|
||||||
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
||
| 26.01.2019, 09:51 [ТС] | ||
|
krapotkin, я уже не знаю как Вас благодарить за проделанный труд.
В свободное время буду потихоньку разбираться во всём. Вопросы не задавал потому что даже и не знаю, что и как спросить.
0
|
||
|
|
|
| 28.01.2019, 22:13 | |
|
мы предполагаем, что файл большой и нет смысла его полностью скачивать в массив
для работы с файлами есть концепция потока (Stream) НЕ ПУТАТЬ с потоками операционной системы (Thread) файл по мере необходимости загружается по кускам в некоторый буфер, а из буфера этого стрима мы уже можем загрузить к себе в небольшой массив или запись сколько-то байтов в данном случае предполагается что в массив байтов Arr загружен какой-то кусок файла в моем примере я загружаю из стрима в буфер 1000 байтов и ищу там байты 8 2 если не нашел, загружаю в этот буфер следующий кусок все это сделано из-за того, что вы сказали, что пакеты а файле могут быть битыми, неполными поэтому поиск каждый раз веду по всем признакам иначе можно было просто загрузить файл кусками по 1936 байт в записи нужного типа
0
|
|
|
1 / 1 / 1
Регистрация: 03.12.2012
Сообщений: 299
|
||||||
| 01.02.2019, 15:53 [ТС] | ||||||
|
krapotkin, Не могли бы Вы объяснить принцип функции:
$0208, $0100, $0001 ясно, что это 8 2 и 1 0 или 0 1, а как формируются и почему наоборот?
0
|
||||||
|
62 / 48 / 20
Регистрация: 01.09.2017
Сообщений: 381
|
|
| 01.02.2019, 16:11 | |
|
О-го-го как эту тему раскочегарили, аж вторая страничка уже полная.
0
|
|
| 01.02.2019, 16:11 | |
|
Перехват пакетов, отправляемых на устройство Отправка ICMP пакетов на указанный IP Очередность обработки пакетов из TClientSocket Чтение и запись пакетов Byte
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|