Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] dec2hex|ascii (http://forum.oszone.net/showthread.php?t=131834)

semiono 13-02-2009 04:10 1037015

dec2hex|ascii
 
Есть ли способ перевода данных ЦЫФРЫ в HEX? ну и с дальнейшим применением в скриптах?
Я сначала не мог прочитать в реестре нечто такое data REG_SZ 000020020030004444405550...
Но с помощью WinHex прочитал этот дамп и теперь возник вопрос, как самому корректно записать туда свой код?
Например, как записать туда скажем C:\MyProg\bin в виде кодов символов в обычный REG_SZ

То-есть задача такова что где-то в скрипте мы считываем или получаем данные $Path, в обычном виде, скажем C:\progs
но потом это надо уже переписывать в виде дампа цыфр, чтоб вписать в реестр уже как REG_SZ "ЦЫФРАМИ ЭТИХ КОДОВ..."

offtop: кодами этих кодов или цыфрами этих цыфр )))
однако мысль сложная, поэтому я как смог высказал :)
?

Creat0R 13-02-2009 07:09 1037049

Для конвертирования цифр в хекс-код, есть функция, называется (как ни страннно) Hex() :) .

Для конвертирования в бинарный код обычной строки, используется StringToBinary():

Код:

$sPath = "C:\Path"

ConsoleWrite("Original string: " & $sPath & @CRLF)

$nHex = StringToBinary($sPath)
ConsoleWrite("StringToBinary: " & $nHex & @CRLF)

$nStr = BinaryToString($nHex)
ConsoleWrite("BinaryToString: " & $nStr & @CRLF)


semiono 13-02-2009 21:01 1037753

Цитата:

Цитата Creat0R
Hex() »

Еслиб я был более благоразумным, мог бы сам найти в хелпе :)
Но хорошо что были эти функции, я так и подозревал, ато иначе самому написать пришлось бы,
что-то типа перевода таблицы символов! Фиг бы кто это осилил :)

semiono 14-02-2009 03:13 1037998

Арифметика нужна!
Первая проблема это шеснадцатиричный индекс

Код:

$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()
?
У меня какраз ситуация где в одном параметре реестра именно в таком виде, сначало идут "статичные" записи, а далее путь и всё в одну строку...

semiono 14-02-2009 14:25 1038203

Как же убрать 0x из значения переменной 0x433A5... Если я может непонятно написал, я поясню?!...

Creat0R 14-02-2009 14:48 1038223

Цитата:

Цитата semiono
Были бы сдвиговые операции как в ассемлере! »

String*() не устраивает?

P.S
Справка+поиск (в ней и не только) я вижу вам не по душе...

semiono 15-02-2009 11:37 1038917

Цитата:

Цитата Creat0R
Справка+поиск »

Честное слово, скажу всётаки! Многие юзеры могут убить за одну установку Неро, в котором вместо кнопочки Записать есть кнопка Burn, и таких валом кругом! Мне же досталось читать про рег экспы, примеры которых изобилуют логическими построениями типа While Then Do, когда сами регулярные выражения и без того трудно на ум ложаться и вдобавок ещё на английском языке. И вот когда именно я влез в регексп код, мне прикрыли кислород помощи, и именно почему-то в этот момент.
:)
Но я понял, что именно с этого места и надо вообще автоит изучать! Инфы достаточно, но трудно всётаки.


Время: 16:46.

Время: 16:46.
© OSzone.net 2001-