Всем привет. Подскажите как правильно читать файл? Т.е. если я читаю его функцией ReadFile, то кол-во прочтенный байт, возвращается равное количесту, которое я указал в байт для прочтения. Т.е. файл например 10 байт, я его читаю в буффер длиной 65к, то мне вернет, как буд-то я 65к байт и проситал. И еще например, как прочитать байты ехе файла? Мне 3 символа каких-то возвращает и все... Код взят отсюда: http://www.wasm.ru/article.php?article=1001012
Сейчас попробую. Но дело еще в том, что если я читаю например текстовый файл, то все нормально, а если ехе, то он выдает 3 символа и все... В примере который я вам дал, можете сами увидеть
Понял в чем дело. Ехе файл считывается, но у него в 4-ый байт=0, поэтому едит бокс, считает что это конеч строки, и не печатает дальше. Как вывести весь файл?
Рич едит в режиме "филтер стринг=олл файл" прекрасно открывает ексе, бмп и все остальные. Из него можно вытянуть информацию о длине и тд - см. 33,34,35 уроки Икзелиона. Нужно быть осторожным - обязательно сделать кнопку " закрыть файл с отменой всех изменений ". Похоже, если просто закрыть - происходит какое-то переформатирование, файл накрывается. Решил посмотреть что там в ядре делается, забыл нажать отмену, а у меня автосохранение сделано в редакторе. После этого в биосы не мог зайти. Может я нашёл ещё одну уязвимость? Встраиваем такую штуку в обычную прогу, которые юзеры скачивают тысячами каждый день, и 6 июня, например она включается и за пару секун делает неработоспособным всё до чего успеет дотянуться, пока система не рухнет...Я не виноват... Получается, что прога, в которой есть рич-едит представляет потенциальную опасность и антивирус должен её немедленно уничтожать ?
ну еще бы. RichEdit все таки для текста создан. Магическая комбинация 10,13 "\r\n" дает о себе знать... я думаю, RichEdit'ом можно разрушить цивилизацию, если знать как. Просто раньше его применяли для других, более мирных целей А если серьезно, Lex2029 попробуй в MSDN'е набрать ReadFile, и все станет ясно. Про возвращаемое значение сказано примерно следующее: в случае успеха функция возвращает ненулевое значение, а в случае провала - ноль. Никто не обещал что она будет возвращать какое то количество байт. Действительное число прочитанных байт возвращается в переменную, на которую указывает lpNumberOfBytesRead, передающийся четвертым параметром.
Если честно, не знаю что такое WFP. Ничем серьёзным не занимаюсь - машина одна, так по мелочи - год назад задался целью написать для себя кое какие програмки, пробовал дельфи, с++. Как-то случайно на фриваре встретилась ссылка на мбилдер - и когда через 20 минут я сделал свое первое окно - 3 кило всего, то понял, что ассемблер - очень похожь на сермяжную сущность програмирования и вот... Щас ещё раз проверил - Рич едит с олл файл ( так держу на всякий случай , веб доки удобно редактировать , текстовые файлы и многое ещё - и не надо переключать фильтр... ленивый я, что делать) открывает в систем 32 всё подряд , едиственное - нт длл - долго - около 10 секунд ... У меня оключено слежение системы за пользователем, может из-за этого она молчит? В принципе, слежение можно всегда оключить программно, наверное....Как раз на прошлый новый год - решил сдуру посмотреть и забыл нажать отмену ....при закрытии файла у меня автоматом сохраняются все изменения. Система умерла, но странно, что часа два потом тыкался - не пускает в биосы и всё тут, не знаю что наделал...
Это я понимал Проблемма была в другом. Но уже она мне очень глупой кажется А реально то что я спрашивал, как в edit вывести текст. Но мне уже посоветовали richedit юзать. Спасибо
Veter, мне кажецо что не изза ричедита, а изза того, что ты "часа два потом тыкался" тебя не пустило в магические биосы, видимо трава не сразу отпустила
WFP - это Windows File Protection, которая создана специально для того, чтобы предохранять изменение системных файлов richedit-ом