Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Реверс и порядок байт
Реверс и порядок байт
KASaLEXДата: Ср, 21 Декабря 2022, 05:45 | Сообщение # 1
Новичок
Написал довольно сложную программу (как для новичка) для импорта игровых текстур, работаю над её оптимизацией. В программе ведется работа с байтами и их шестнадцатеричными значениями которые преобразуются в десятичные и обратно. Как у меня это реализовано через плагин NeoHexEdit я получаю последовательность байт, делаю срез нужных значений к примеру с третьего по девятый - C83701, дальше я создаю массив в который записываю по два символа, а потом массив записываю в строку в обратном порядке на выходе получаю 0137С8, таким образом преобразую прямой порядок байт в обратный и наоборот. Выходит очень громоздкой код, плюс десятичное значение после конвертации в hex снова создаю массив, что бы изменить порядок байт для вставки значений. Вопрос нет ли более простого способа или готового решения для реверса байт, или конвертора, что бы на выходе байты были в правильном порядке?
 
СообщениеНаписал довольно сложную программу (как для новичка) для импорта игровых текстур, работаю над её оптимизацией. В программе ведется работа с байтами и их шестнадцатеричными значениями которые преобразуются в десятичные и обратно. Как у меня это реализовано через плагин NeoHexEdit я получаю последовательность байт, делаю срез нужных значений к примеру с третьего по девятый - C83701, дальше я создаю массив в который записываю по два символа, а потом массив записываю в строку в обратном порядке на выходе получаю 0137С8, таким образом преобразую прямой порядок байт в обратный и наоборот. Выходит очень громоздкой код, плюс десятичное значение после конвертации в hex снова создаю массив, что бы изменить порядок байт для вставки значений. Вопрос нет ли более простого способа или готового решения для реверса байт, или конвертора, что бы на выходе байты были в правильном порядке?

Автор - KASaLEX
Дата добавления - 21 Декабря 2022 в 05:45
mishemДата: Ср, 21 Декабря 2022, 11:02 | Сообщение # 2
Эксперт форума
Выкладывай код, посмотрим как его можно оптимизировать.

Цитата KASaLEX ()
или конвертора

rlFunctions

Цитата KASaLEX ()
для реверса байт

Код

FileOpenBox "Выбрать файл" "Все файлы|*.*" "[LastDir]" "[FileName]" ""
If "[FileName]" "=" ""
    Return
EndIf
ClearVariables "[Hex]"
NeoHexFileToHexVar "[FileName]" "[HexData]"
.Копируем 6 символов начиная с третьей позиции
SubStr "[HexData]" "3" "6" "[Result]"
SetVar "[i]" "1"

.Меняем порядок
While "[i]" "<=" "5"
    SubStr "[Result]" "[i]" "2" "[HexNum]"
    SetVar "[Hex]" "[HexNum][Hex]"
    SetVar "[i]" "[i]+2"
EndWhile

.****Меняем в исходных данных новыми символами***
.Удаляем 6 символов начиная с третьей позиции
StrDel "[HexData]" "3" "6" "[HexData]"
.Вставляем новые символы начиная с 3 позиции
StrIns "[Hex]" "[HexData]" "3" "[HexData]"


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеВыкладывай код, посмотрим как его можно оптимизировать.

Цитата KASaLEX ()
или конвертора

rlFunctions

Цитата KASaLEX ()
для реверса байт

Код

FileOpenBox "Выбрать файл" "Все файлы|*.*" "[LastDir]" "[FileName]" ""
If "[FileName]" "=" ""
    Return
EndIf
ClearVariables "[Hex]"
NeoHexFileToHexVar "[FileName]" "[HexData]"
.Копируем 6 символов начиная с третьей позиции
SubStr "[HexData]" "3" "6" "[Result]"
SetVar "[i]" "1"

.Меняем порядок
While "[i]" "<=" "5"
    SubStr "[Result]" "[i]" "2" "[HexNum]"
    SetVar "[Hex]" "[HexNum][Hex]"
    SetVar "[i]" "[i]+2"
EndWhile

.****Меняем в исходных данных новыми символами***
.Удаляем 6 символов начиная с третьей позиции
StrDel "[HexData]" "3" "6" "[HexData]"
.Вставляем новые символы начиная с 3 позиции
StrIns "[Hex]" "[HexData]" "3" "[HexData]"

Автор - mishem
Дата добавления - 21 Декабря 2022 в 11:02
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Реверс и порядок байт
  • Страница 1 из 1
  • 1
Поиск: