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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать программу для реализации числ.метода парабол http://www.cyberforum.ru/cpp-beginners/thread1040696.html
Доброго времени суток, мужики. С++ пытаюсь учить по примерам из учебника Культин Н.Б, а в институте задали такую задачу с которой не могу справиться. Суть такова. Разработать программу на любом языке (мне по душе с++) для реализации числ.метода парабол x2+b*sin x = a при a = 1 / b= 4 Получается несуразица у меня. В МатКаде решил, и график построил для себя. Ответ по МатКаду = 0,238 int...
C++ Упорядочивание столбцов по убыванию характеристик Характеристика столбца – максимум среди сумм цифр элементов. Знаю c#, а тут пришлось писать на с++. Написал такой код. #include "stdafx.h" #include <iostream> #include <locale> using namespace std; int _tmain(int argc, _TCHAR* argv) { 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 штук товара, при условии, что одна штука товара стоит x руб (значение x водится с клавиатуры)"
C++ Динамическая память с++ Как использовать динамическую память в с++ подробнее

Показать сообщение отдельно
xman911
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 68
14.12.2013, 02:07     Открыть бинарный файл(.ехе) и сохранить часть байтов в текст
Всем привет. Задача такая: нужно прочитать .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
    //////////////////////////////////////////////////////////////////////////
 
    
    //////////////////////////////////////////////////////////////////////////
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru