Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Кириллььь
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 14
#1

Поиск последовательности в пакете данных - C++

29.06.2012, 11:05. Просмотров 405. Ответов 4
Метки нет (Все метки)

Имеется файл в формате .sig, содержащий пакеты данных, необходимо в этом пакете обнаружить определенную последовательность символов, подскажите пожалуйста через что подступиться, с чего начать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2012, 11:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск последовательности в пакете данных (C++):

Поиск максимальной последовательности в другой последовательности - C++
Доброго времени суток. Решая эту задачу, наткнулся на небольшую проблему... Не знаю, как точно описать ее в двух словах, поэтому покажу...

Поиск последовательности в массиве. - C++
В массиве В определить начальный и конечный индексы элементов, состав¬ляющих максимальную по длине неубывающую последовательность. Вывести...

Поиск возрастающей последовательности - C++
Не могу правильно поставить условие цикл для задачи: Для натуральных чисел,не превосходящих заданного числа N,найти все простые...

Поиск места в массиве последовательности - C++
Написал программу для нахождения позиции в массиве последовательности чисел #include<iostream> #include<algorithm> ...

Поиск последовательности элементов в массиве - C++
Как можно в массиве произвести поиск последовательности элементов? то есть в динамичесокм массиве, который заполняется рандомными числами...

Поиск последовательности в массиве символов - C++
есть массив ascii символов мне нужно там найти последовательность (строку) есть какие-нибудь функции для поиска последовательности. в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
29.06.2012, 13:39 #2
похожая тема
Поиск FOURCC кода в AVI - файле
1
Кириллььь
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 14
29.06.2012, 21:02  [ТС] #3
Тема похожа но видимо малова-то знаний что бы полностью разобраться в Вашей программе. Приминительно к моей программе не могу сообразить как организовать цикл который находил бы последовательность битов и потом выводил следующую после них последовательность символов ( длинна последовательности изменяется в зависимости от пакета данных)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   if (OpenDialog1->Execute())
   {
    DWORD dw;
    HANDLE HHH = CreateFile((OpenDialog1->FileName).c_str(), GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
    FILE *f;
    int len = GetFileSize(HHH,0); // длина файла
    unsigned char *InBuf = new unsigned char[len];// входной массив
    ReadFile (HHH,InBuf,len,&dw,0); //чтение данных в массив
    int DlinaPaketa = 0;
    int Begin = 0;
           do
              {
               DlinaPaketa = InBuf[0+Begin]+256*InBuf[1+Begin];
               Begin = DlinaPaketa+2+Begin;
       // цикл обнаружения
       //
              }
              while (!((Begin+1)>len));
Заранее благодарен
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
30.06.2012, 08:01 #4
на стандартном c++ можно так ( если файл достаточно мелкий чтобы влезть в строку )
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
#include <string>
#include <fstream>
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main()
{
    std::ifstream ifs("in.txt", std::ios::binary);
    if(ifs.is_open())
    {
        std::string sought("two\r\n th"); // что ищем
        std::string s((std::istreambuf_iterator<char>(ifs.rdbuf())), std::istreambuf_iterator<char>());
        std::string::iterator it = std::search(s.begin(), s.end(), sought.begin(), sought.end());
        if(it != s.end())
        {
            std::cout << "Found" << std::endl;
        }
        else
        {
            std::cout << "Not found" << std::endl;
        }
        ifs.close();
    }
    else std::cerr << "Unable to open file" << std::endl;
    return 0;
}
1
Кириллььь
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 14
01.07.2012, 22:29  [ТС] #5
Разобрался в Вашем варианте, к сожалению для данной задачи не подходит, т.к. работа ведется с байтами, вроде получилось реализовать перебирая каждый байт массива. Тем не менее большое спасибо за оказанное внимание и помощь
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2012, 22:29
Привет! Вот еще темы с ответами:

Поиск последовательности элементов в массиве - C++
В универе задали создать программу авторизации (иначе не знаю как объяснить). В начале на выбор предлагается два действия - добавить...

Поиск битовой последовательности (с заморочками) - C++
Необходимо осуществить поиск последовательности БИТОВ (!) в бинарном файле! Но возникла такая проблема: последовательность не выравнена...

Поиск наибольшей последовательности цифр в файле - C++
Во входном файле in.txt содержится последовательность цифр от 0 до 9, например: 1 4 4 4 3 3 2 2 2 2 4 3 3 3 0 0 0 0 1 2 3 5 1 1 1 1 1...

Поиск последовательности символов и ее замена на другую - C++
Дана строка. Найти последовательность символов, например &quot;!!&quot; и заменить ее на &quot;??&quot; Прошу помощи!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.07.2012, 22:29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru