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

Не правильно работает программа посимвольного чтения из exe и записи в txt - C++

Восстановить пароль Регистрация
 
jameskolwolf
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 4
17.05.2014, 01:17     Не правильно работает программа посимвольного чтения из exe и записи в txt #1
Вся суть программы заключается в посимвольном считывании кода из .exe файла, и запись в .txt файл в виде C++ кода который все эти символы должен будет записать, то есть чтобы этот готовый код вставить в другую программу, чтобы при запуске она создавала рабочий .exe файл. Казалось что всё просто, но возникла ошибка которую я никак не могу исправить. Программа должна ПОЛЬНОСТЬЮ считать exe файл а она (если повезёт) считывает 3 первые строки.
Проще говоря: она читает символы из exe, записывает их в txt в виде кода C++,затем я этот код копирую в другую программу и при запуске она делает рабочий exe`шник.
Вот сам код программы:
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
#include <iostream>
#include <fstream>
#include <windows.h>
#include <conio.h>
#include <string>
#include <stdio.h>
#include <algorithm>
using namespace std;
using std::cout;
using std::cin;
using std::endl;
using std::basic_string;
 
int main()
{
 int i,num;
 string str;
 char s,s2,a13=13,a34=34;
 char ch[255];
 for(i=0;i<i+3;i++){
 if(i>=256){break;}
 ch[i]=i;                   
 }
 cout << "Generating file..." << endl;
 ifstream f("miniFmodTest.exe");
 ofstream of("result.txt");
 
 of << "of2";
 while (!f.eof()){
 num=1;
 cout << num+1 << endl;    
 f.get(s);
 //if(f.eof()) break;
 for(i=0;i<256;i++){
 if(s==ch[i]){of << "<<" << "ch[" << i << "]";}}}
 of << ";" << endl;
 cout << str << endl;
 f.close();
 of.close();
 cout << "Done!" << endl;
}
Если данный процесс генерации exe файлов exe файлами можно осуществить по другому,очень прошу вас рассказать и показать на примерах как это сделать ибо я в C++ не спец.
Заранее благодарен!
P.S Если что я компилирую на Dev-C++.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 01:17     Не правильно работает программа посимвольного чтения из exe и записи в txt
Посмотрите здесь:

Программа работает, не не совсем правильно... C++
Правильно ли работает программа? C++
Не правильно работает программа C++
Не правильно работает программа(Сортировка) C++
C++ Программа работает не правильно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.05.2014, 02:48     Не правильно работает программа посимвольного чтения из exe и записи в txt #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от jameskolwolf Посмотреть сообщение
Программа должна ПОЛЬНОСТЬЮ считать exe файл а она (если повезёт) считывает 3 первые строки.
В бинарном режиме нужно читать.
jameskolwolf
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 4
17.05.2014, 15:30  [ТС]     Не правильно работает программа посимвольного чтения из exe и записи в txt #3
Цитата Сообщение от alsav22 Посмотреть сообщение
В бинарном режиме нужно читать.
Хммм... Я так понял если читать в бинарном то и записывать нужно в бинарном.
Можете показать на примере как это делается?
P.S Программа читает все символы, но когда видит символ <SUB> говорит что всё прочитано. Почему программе не нравится этот символ я х3.
Добавлено через 18 минут
Всё я понял как нужно делать!
C++
1
2
3
4
//.....
ifstream f("miniFmodTest.exe", ios::binary);
ofstream of("result.txt", ios::binary);
//.....
Но всё равно интересно почему же ей так не нравился символ <SUB> ? Она даже <CR>,<NUL> и <ESC> читала.
Но ничего, самое главное я нашёл проблему. Она была в моей криворукости невнимательности.
Оказывается всё было очень просто. Спасибо за помощь!
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.05.2014, 17:41     Не правильно работает программа посимвольного чтения из exe и записи в txt #4
Цитата Сообщение от jameskolwolf Посмотреть сообщение
Но всё равно интересно почему же ей так не нравился символ <SUB> ?
Имейте в виду, что, при открытии exe файла в текстовом редакторе, не все значения байтов будут видны. Воможно, где-то попадалось значение, которое понималось (в текстовом режиме чтения) как EOF.
Yandex
Объявления
17.05.2014, 17:41     Не правильно работает программа посимвольного чтения из exe и записи в txt
Ответ Создать тему
Опции темы

Текущее время: 17:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru