Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2019, 20:51   #1
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию Вывести текст из памяти в EDIT CONTROL.

Привет может здесь сможет мне кто то помочь. Столкнулся с такой странной проблемой. Пишу проект на MFC. Мне нужно что бы при открытии любого файла определенные его участки можно было просмотреть в текстовом формате. Поместил на диалоговое окно EDIT CONTROL. Попробовал данный код
Код:
	HANDLE FileR;
	FileR = CreateFile("D:\\Test.exe", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 
	DWORD  dwRead;
	DWORD size;
	size = GetFileSize(FileR, NULL);
	LPTSTR pBufferExe = (LPTSTR)malloc(size);
	ReadFile(FileR, pBufferExe, size, &dwRead, NULL);
	GetDlgItem(IDC_CONTROL)->SetWindowText(pBufferExe);
С текстовыми файлами все в порядке,но вот с любыми исполняемыми файлами странный глюк. Текст выводится только одной маленькой начальной строчкой, остальное игнорируется. Если начать считывать файл с произвольного места, то опять короткая строчка и все. Как я понял в основном затыкается на пробелах строк. Как такое происходит?
Я уже голову сломал над этим!
zombivadim вне форума Ответить с цитированием
Старый 18.08.2019, 23:31   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

В exe полно нулей, каждый нуль - это конец строки.
А что, собственно, предполагается внутри exe увидеть?
Black Fregat вне форума Ответить с цитированием
Старый 19.08.2019, 00:50   #3
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
В exe полно нулей, каждый нуль - это конец строки.
А что, собственно, предполагается внутри exe увидеть?
Просто вывести в текстовом формате.
Насчет нулей уже как то дошло. Вот ломаю голову чтоб заменить эти нули в буфере на пробелы, как это делает блокнот. Не поможете парой строчек кода?
zombivadim вне форума Ответить с цитированием
Старый 29.08.2019, 11:09   #4
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

копируй из буфера в массив, скажем t[1..N]
и, если тебе не на скорость, а чтоб чисто работало, то дальше перебирай поэлементно в цикле:
Код:
for p=1 to N do if (ord(t[p])=0) then t[p]=Chr(32);
ну, а потом, если надо, снова копируй в буфер и твори там что хочешь.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает edit control computer Win Api 3 02.07.2010 18:52
В Edit-Control не отображается выборный файл --=SaNitinDG=- Общие вопросы C/C++ 4 15.02.2010 20:25
Edit control value Peterff Общие вопросы C/C++ 8 13.12.2009 15:42
значения в полях Edit Control [C++] gooffy Помощь студентам 1 17.05.2008 17:57