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

Открыть бинарный файл(.ехе) и сохранить часть байтов в текст - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать программу для реализации числ.метода парабол http://www.cyberforum.ru/cpp-beginners/thread1040696.html
Доброго времени суток, мужики. С++ пытаюсь учить по примерам из учебника Культин Н.Б, а в институте задали такую задачу с которой не могу справиться. Суть такова. Разработать программу на любом...
C++ Упорядочивание столбцов по убыванию характеристик Характеристика столбца – максимум среди сумм цифр элементов. Знаю c#, а тут пришлось писать на с++. Написал такой код. #include "stdafx.h" #include <iostream> #include <locale> using... http://www.cyberforum.ru/cpp-beginners/thread1040690.html
C++ Определить, есть ли в данном массиве строка, состоящая только из положительных чисел
Ребят, помогите, "Дан массив размером nxn, элементы которого целые числа. При решений задач из данного пункта использовать двумерный массив: Определить, есть ли в данном массиве строка, состоящая...
C++ WinApi: связь реализации оконного класса с данными
Есть некоторый оконный класс, каждая реализация этого оконного класса может иметь свои данные, которые она может использовать в оконной функции. Как задать эти данные? Конкретно мне нужно, чтобы...
C++ Задача с использованием операторов цикла на с++ http://www.cyberforum.ru/cpp-beginners/thread1040673.html
Ребят, помогите "решите задачу тремя способами, используя операторы цикла do while и for. Вывести на экран: таблицу стоимости для 10,20,30,...,100 штук товара, при условии, что одна штука товара...
C++ Динамическая память с++ Как использовать динамическую память в с++ подробнее

Показать сообщение отдельно
xman911
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 68

Открыть бинарный файл(.ехе) и сохранить часть байтов в текст - C++

14.12.2013, 02:07. Просмотров 1303. Ответов 9
Метки (Все метки)

Всем привет. Задача такая: нужно прочитать .exe. в конце его есть некие спецсимволы, которые мне нужно прочитать.

Например они начинаются с "{${" и заканчиваются символами "}$}"

например:

...blablabla...dfsdf8493uijf098jlsdvk....
...blablalbla...

{${SomeMessageForME}$}
...sdkfsoijs...\...\
...
...


вот нужно все вычитать, и сохранить например в std::string.

пока у меня траблы с этим. файл читаю... байты вроде как вижу... но в стрингу передать нормально не могу.

Суть в том что потом мне нужно распарсить тот кусок текста... т.е. работать со стрингом очень удобно.

Но пока не получается. все что копируется в стринг - это массивом, а мне нужно строкой. чтобы потом можно было выполнять .find() .substr() и прочие методы.


Заранее благодарен.

вот код как я пробую читать:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#define FILE_PATH "C:\\noam.exe.exe"
 
 
#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <sstream>
 
 
std::string ReadFile()
{
    //////////////////////////////////////////////////////////////////////////
    std::ifstream fs;
    fs.open (FILE_PATH);
    if (fs.fail()) {
        //std::cerr << "Failed to open file!\n";
        //return 1;
    }
    fs.seekg(0, std::ios::end);
    size_t i = fs.tellg();
    char* buf = new char[i];
    fs.seekg(0, std::ios::beg);
    fs.read (buf, i);
    fs.close();
    std::string s;
    s.assign (buf, i);
    //////////////////////////////////////////////////////////////////////////
    std::stringstream scmp;
    for (int nLbuf=0; nLbuf< i; nLbuf++)
    {
        //std::cout << buf[nLbuf];
        scmp << buf[nLbuf];
        
    }
 
 
    //////////////////////////////////////////////////////////////////////////
 
 
    delete [] buf;
    std::string sss="";
    sss=scmp.str();
 
    int nnn = sss.find("{${"); return -1 :(
    //////////////////////////////////////////////////////////////////////////
    
    for (std::string::const_iterator it = s.begin(); it != s.end()-1; it++)
    {
        //std::cout << (*it);
 
        sss.append(&*it);
        if (sss.find("<$") != -1)
        {
            break; //этот какакод ваще не пашет - копируется очень много всякой ерунды в sss
        }
        
    }
    nnn = sss.find("<$"); /// -1
    //////////////////////////////////////////////////////////////////////////
 
    
    //////////////////////////////////////////////////////////////////////////
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru