Программирование - Страница 6 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Ответ
Страница 6 из 7
 
Опции темы
#76
Старый 27.07.2016, 16:17
  #76
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Программирование

Я не могу проверить правильность программы test.com. Плохо знаю ассемблер.
Напиши на C/Pascal/Delphi прожку, чтобы открывать файл, как текстовый, и копировать что куда надо. В случае с Pascal/Delphi это стандартные средства a-la readln и т.д. Я так уже делал, там ничего трудного.
Ment вне форума
Ответить с цитированием
#77
Старый 27.07.2016, 16:24
  #77
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Программирование

Кстати, писать ничего не обязательно. Я сейчас проверил, Hex Editor в режиме Insert Mode вполне себе удаляет/вставляет байты.
Все файлы exe в Windows начинаются примерно одинаково:
Миниатюры
Нажмите на изображение для увеличения
Название:  WinExe.jpg
Просмотров: 52
Размер:	74.7 Кбайт
ID:	45419  
Ment вне форума
Ответить с цитированием
#78
Старый 27.07.2016, 19:26
  #78
^
Hermit
 
Аватар для Hermit
📖
Регистрация: 08.09.2008
Сообщения: 1954
Регистрация: 08.09.2008
Сообщения: 1954
По умолчанию
Re: Программирование

Программа, которая должна копировать все байты, начиная с 33-его, должна быть малюсенькая, поэтому и ассемблер. И она правильно всё копирует! Проблема не в том, что она неправильно копирует, а в том, что даже после того как она всё правильно скопирует файлы Folder1\test.exe и Folder2\test.exe будут разные, хотя имеют одинаковое содержимое и одинаково называются.
__________________
Всё не так плохо как Вы думаете. Всё намного хуже!
Всё не так плохо как Вы думаете. Всё намного хуже!
Hermit вне форума
Ответить с цитированием
#79
Старый 27.07.2016, 19:32
  #79
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Программирование

Не верю. Позволь самому сравнить
Разве что вот какие моменты:
После этого его открыли в текстовом редакторе и добавили ему в начало текстовую строку из 32 символов (с учётом символа перехода на новую строку перед содержимым exe-файла 33 символа).
Текстовый редактор -- слабо контролируемая штука. Она может и ещё символов добавить на своё усмотрение. Например, символ конца файла в собственно конец файла. Кроме того, ты говоришь, что там он добавил 33 символа (ведь новая строка -- тоже символ). А вырезаешь только 32 (33-й оставляешь). Так что может быть в этом ошибка.
Но в то, что после всех операций ты получил ровно тот же test.exe, что и был у тебя, не верю. Не-а.
Ment вне форума
Ответить с цитированием
#80
Старый 27.07.2016, 20:40
  #80
^
Hermit
 
Аватар для Hermit
📖
Регистрация: 08.09.2008
Сообщения: 1954
Регистрация: 08.09.2008
Сообщения: 1954
По умолчанию
Re: Программирование

MentНе верю. Позволь самому сравнить

И я бы раньше не поверил
http://www.hermit.besaba.com/forment.zip

Добавлено через 19 минут
Попробуй ещё, кстати, открыть какой-нибудь exe-файл, хоть мой test.exe из Folder1 (он маленький) в Блокноте и потом куда-нибудь его сохранить в другой каталог из Блокнота с точно таким же именем и расширением. Увидишь, что он после этого не запустится, хотя и размер, и содержимое, и атрибуты, и даже имена у обоих этих файлов будут абсолютно одинаковые.
__________________
Всё не так плохо как Вы думаете. Всё намного хуже!
Всё не так плохо как Вы думаете. Всё намного хуже!
Hermit вне форума
Ответить с цитированием
#81
Старый 27.07.2016, 22:24
  #81
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Программирование

Ну, я знаю, что после блокнота не запустится. Но, если всё правильно делать (с помощью программы/Hex Editor'а), то запустится.
В данном случае Hex Editor однозначно показал, что файлы разные. Блокнот превратил нулевые символы (код 00) в пробелы (код 20). Поэтому ничего не работает. Вот и вся разгадка.
Могу приложить скриншоты.
Ment вне форума
Ответить с цитированием
#82
Старый 27.07.2016, 22:37
  #82
^
Hermit
 
Аватар для Hermit
📖
Регистрация: 08.09.2008
Сообщения: 1954
Регистрация: 08.09.2008
Сообщения: 1954
По умолчанию
Re: Программирование

Ну с блокнотом понятно, но программа test.com? Разве разные файлы test.exe в папках Folder1 и Folder2?
__________________
Всё не так плохо как Вы думаете. Всё намного хуже!
Всё не так плохо как Вы думаете. Всё намного хуже!
Hermit вне форума
Ответить с цитированием
#83
Старый 27.07.2016, 22:40
  #83
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Программирование

Разве разные файлы test.exe в папках Folder1 и Folder2?
Да. Остальное я не смотрел, если честно. Думаю, test.com работает правильно, а в test.txt -- ересь.
Ment вне форума
Ответить с цитированием
#84
Старый 27.07.2016, 22:43
  #84
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Программирование

Вот, прикладываю скриншоты. Там те самые экзешники из разных папок, первый правильный, второй -- результат операций с блокнотом и test.com
Миниатюры
Нажмите на изображение для увеличения
Название:  folder1.jpg
Просмотров: 5
Размер:	246.5 Кбайт
ID:	45427  Нажмите на изображение для увеличения
Название:  folder2.jpg
Просмотров: 5
Размер:	220.7 Кбайт
ID:	45428  
Ment вне форума
Ответить с цитированием
#85
Старый 28.07.2016, 01:20
  #85
^
Hermit
 
Аватар для Hermit
📖
Регистрация: 08.09.2008
Сообщения: 1954
Регистрация: 08.09.2008
Сообщения: 1954
По умолчанию
Re: Программирование

Да, Ment! Ты абсолютно прав! Спасибо!

Добавлено через 2 часа 30 минут
Да test.com работает правильно, но Блокнот @ заменял 00h на 20h!!! и на вход test.com уже подавалось неправильное содержимое exe-файла!
__________________
Всё не так плохо как Вы думаете. Всё намного хуже!
Всё не так плохо как Вы думаете. Всё намного хуже!
Hermit вне форума
Ответить с цитированием
#86
Старый 07.04.2017, 12:37
  #86
^
Hermit
 
Аватар для Hermit
📖
Регистрация: 08.09.2008
Сообщения: 1954
Регистрация: 08.09.2008
Сообщения: 1954
По умолчанию
Re: Программирование

Такой вопрос.
Запускается bat-файл и его вывод перенаправляется в текстовый файл. Ну скажем task.bat > result.txt. В этом файле командой start запускается программа. Пробовал даже перенаправлять все её потоки вывода в никуда 1>nul 2>nul. bat'ник завершает работу, но программа работает. И вот, пока её не закрыть, не получается удалить файл result.txt, а это очень нужно. В чём тут может быть проблема?
__________________
Всё не так плохо как Вы думаете. Всё намного хуже!
Всё не так плохо как Вы думаете. Всё намного хуже!
Hermit вне форума
Ответить с цитированием
#87
Старый 07.04.2017, 12:43
  #87
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Программирование

Не разбираюсь. Почему в программе нельзя в явном виде прописать условие её завершения, чтобы это было до закрытия батника?
Ment вне форума
Ответить с цитированием
#88
Старый 07.04.2017, 12:51
  #88
^
Hermit
 
Аватар для Hermit
📖
Регистрация: 08.09.2008
Сообщения: 1954
Регистрация: 08.09.2008
Сообщения: 1954
По умолчанию
Re: Программирование

Потому что нужно, чтобы она работала, а файл result.txt был удалён.
__________________
Всё не так плохо как Вы думаете. Всё намного хуже!
Всё не так плохо как Вы думаете. Всё намного хуже!
Hermit вне форума
Ответить с цитированием
#89
Старый 07.04.2017, 13:41
  #89
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Программирование

А закрыть файл в программе почему нельзя?..
Ment вне форума
Ответить с цитированием
#90
Старый 07.04.2017, 13:46
  #90
^
Hermit
 
Аватар для Hermit
📖
Регистрация: 08.09.2008
Сообщения: 1954
Регистрация: 08.09.2008
Сообщения: 1954
По умолчанию
Re: Программирование

MentА закрыть файл в программе почему нельзя?..
Да она его и не открывает. Но удалить почему-то не даёт.
__________________
Всё не так плохо как Вы думаете. Всё намного хуже!
Всё не так плохо как Вы думаете. Всё намного хуже!
Hermit вне форума
Ответить с цитированием
Ответ
Страница 6 из 7


Опции темы



Часовой пояс GMT +4, время: 01:31.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru