Показать полную графическую версию : [решено] dec2hex|ascii
Есть ли способ перевода данных ЦЫФРЫ в HEX? ну и с дальнейшим применением в скриптах?
Я сначала не мог прочитать в реестре нечто такое data REG_SZ 000020020030004444405550...
Но с помощью WinHex прочитал этот дамп и теперь возник вопрос, как самому корректно записать туда свой код?
Например, как записать туда скажем C:\MyProg\bin в виде кодов символов в обычный REG_SZ
То-есть задача такова что где-то в скрипте мы считываем или получаем данные $Path, в обычном виде, скажем C:\progs
но потом это надо уже переписывать в виде дампа цыфр, чтоб вписать в реестр уже как REG_SZ "ЦЫФРАМИ ЭТИХ КОДОВ..."
offtop: кодами этих кодов или цыфрами этих цыфр )))
однако мысль сложная, поэтому я как смог высказал :)
?
Для конвертирования цифр в хекс-код, есть функция, называется (как ни страннно) Hex() :) .
Для конвертирования в бинарный код обычной строки, используется StringToBinary():
$sPath = "C:\Path"
ConsoleWrite("Original string: " & $sPath & @CRLF)
$nHex = StringToBinary($sPath)
ConsoleWrite("StringToBinary: " & $nHex & @CRLF)
$nStr = BinaryToString($nHex)
ConsoleWrite("BinaryToString: " & $nStr & @CRLF)
Hex() »
Еслиб я был более благоразумным, мог бы сам найти в хелпе :)
Но хорошо что были эти функции, я так и подозревал, ато иначе самому написать пришлось бы,
что-то типа перевода таблицы символов! Фиг бы кто это осилил :)
Арифметика нужна!
Первая проблема это шеснадцатиричный индекс
$sPath = "C:\zz"
$nHex = StringToBinary($sPath)
RegWrite("HKLM\Software\a","z","REG_SZ",$nHex)
Получаем 0x433A5C7A7A, из чего конечно 0x нам не нужен.
Причём я не знаю как это убрать даже логически, если бы в конце то хотяб как $nHex - 2
ито я даже корректно не соображу как это делается... Были бы сдвиговые операции как в ассемлере! :)
Ну и ещё хотелось бы на будущее записывать эти данные в середину строки, например
RegWrite("HKLM\Software\a","z","REG_SZ", {olddata} & $nHex & {olddata} )
где olddata - какие-то записи которые надо оставить не тронутыми.
Тут видимо надо как-то с переменными с арифметикой поработать...
Например, в реестре valuename имеет значение 123456789, и нам надо изменить это значение
с 4-го по 7-й знак, что конечно сложнее чем просто RegWrite()
?
У меня какраз ситуация где в одном параметре реестра именно в таком виде, сначало идут "статичные" записи, а далее путь и всё в одну строку...
Как же убрать 0x из значения переменной 0x433A5... Если я может непонятно написал, я поясню?!...
Были бы сдвиговые операции как в ассемлере! »
String*() не устраивает?
P.S
Справка+поиск (в ней и не только) я вижу вам не по душе...
Справка+поиск »
Честное слово, скажу всётаки! Многие юзеры могут убить за одну установку Неро, в котором вместо кнопочки Записать есть кнопка Burn, и таких валом кругом! Мне же досталось читать про рег экспы, примеры которых изобилуют логическими построениями типа While Then Do, когда сами регулярные выражения и без того трудно на ум ложаться и вдобавок ещё на английском языке. И вот когда именно я влез в регексп код, мне прикрыли кислород помощи, и именно почему-то в этот момент.
:)
Но я понял, что именно с этого места и надо вообще автоит изучать! Инфы достаточно, но трудно всётаки.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.