Кто в VBS или CMD/BAT спец? Подскажите как сделать hex2byte #805517


#0 by Брудвар
Нужно написать прогу которая может прочитать с диска файл in.hex в котором в hex формате хранятся данные, например: A0E20F327F45 и так далее. Просто символы от 0 до F Потом нужно эти данные преобразовать в соответствующие байты и записать в другой файл out.bin Вроде все просто, но я не нашел готового решения, а сам в этих языках программирования вообще не шарю. Есть тут специ по данным видам программирования?
#1 by Aleksey
что значит "преобразовать в соответствующие байты"
#2 by H A D G E H O G s
1000 рублей/час. Обращайтесь.
#3 by Филиал-msk
Татарин, он, Еврейчику программу найти поможет, как же...
#4 by Fram
тупо переименовать файл не пробовал?
#5 by Брудвар
Это когда два шестнадцатеричных символа занимают 8 бит в файле.
#7 by Fram
наверно этот больше подойдет
#8 by Брудвар
Во, точно. Так должны преобразовываться hex в символы. Только нужно чтобы из файла бралось и в файл записывалось.
#9 by Брудвар
Но только не онлайн. Там где скрипт работает нет интернета. Нужно именно скриптовым языком написать программу, которая будет работать на голом виндовсе без дополнительных компиляторов и интерпретаторов. То есть чтобы я мог сесть за компьютер, и напечатать программу. Портов для флэшек и дисководов тоже нет.
#10 by Fram
угадай где я взял эти ссылки?
#11 by Брудвар
Даже не знаю. В интернете чтоли?
#12 by Fram
держи готовое решение, лентяй
#13 by Fram
+ а вот как читать/писать файлы соединяй
#14 by Брудвар
Спасибо, но я уже сам что-то подобное написал: strString = "" strHex ="74657374" For i=1 To Len(strHex) / 2     strString = strString + Chr("&H" + Mid(strHex, i * 2 - 1, 2)) Next WScript.Echo strString Только это не в файл пишется, а на экран. Придется еще изучать как с файлами работать, а мне это никогда больше не пригодится, поэтому трачу время впустую
#15 by quest
твойСкрипт твоеЧислоДляПреобразования > файлКоторыйНужен
#16 by Fram
Все работы хороши, все профессии важны (c)
#17 by Сияющий в темноте
Scripting FileSystemObject читаем два символа,получаем код одного,через  Chr его в символ и Write в файл
#18 by Брудвар
Третий день уже делаю прогу, не могу понять что не так: strHex = "417364D4FBE2" upperBound = CInt(Len(strHex) 2) - 1 ReDim bytes(upperBound) For i = 0 To upperBound   bytes(i) = Chr(CInt("&h" & Mid(strHex, i * 2 + 1, 2))) Next Dim BinaryStream Set BinaryStream = CreateObject("ADODB.Stream") BinaryStream.Type = 1 BinaryStream.Open BinaryStream.Write bytes BinaryStream.SaveToFile "bin.txt", 2 Выдает ошибку что что-то с типами. Кто шарит в этом дурацком бейсике? Подскажите как исправить
#19 by htwor
Вот здесь написано, что "You can write binary data if you have binary data to write, but VBScript can't create binary data." И далее идет ссылка на компоненту, которая должна помочь. Но ссылка не работает. Так что пора переходить на powershell.
#20 by Брудвар
Я и так уже убил три дня на изучение бейсика. Предлагаешь начать все заново?
#21 by Брудвар
Up
#22 by Брудвар
?
#23 by Tateossian
Глянь сюда
#24 by 1dvd
писал такое на турбо пасскале лет 20 назад
#25 by Брудвар
Это не возможно. Турбо паскаля нет в винде
#26 by Сияющий в темноте
Так exe файл,который делает турбо паскаль,прекрасно без него запускается
#27 by NorthWind
бат можно отмести сразу. VBS вряд ли справится с записью бинарного файла... если только ADODB.Stream попробовать, но не уверен, потому что VBS не умеет работать с указателями, а чтобы писать бинарку, надо передать указатель на данные. Я бы сделал на Delphi/C/C++.
#28 by NorthWind
есть, только называется по-другому. Delphi Compiler. Ну или, если напрягает вопрос лицензионной чистоты, то Lazarus.
#29 by Брудвар
Только этот файл неоткуда взять. VBS может записывать бинарные файлы, но есть проблемы с созданием бинарных массивов. Delphi Compiler нету, Lazarus тоже
#30 by NorthWind
VBS их записывать не может точно, он штатно работает только с текстовыми файлами. Работать с бинарями может объект ADODB.Stream, входящий в библиотеку Microsoft ADO, который, в свою очередь, можно подключить из VBS. Но поскольку VBS не имеет прямого доступа к памяти - непонятно, как передать в ADODB.Stream ссылку на данные, которые необходимо записать. И есть опасение, что таки никак не передадите.
#31 by NorthWind
+ ну, нету - скачайте да поставьте. Лазарус - это свободное ПО, вы ничего этим не нарушите.
#32 by NorthWind
кроме того, вам он нужен только на той машине где вы будете делать свою программу. Потом скомпилируете ее в автономный исполняемый файл и отнесете на машину, где она будет работать. Лазарус там уже не будет нужен.
#33 by NorthWind
а повершелл умеет из переменной в памяти бинарь на диск записать? Я чет не уверен.
#34 by Sserj
А какая у тебя система? Так часто упоминаешь что неоткуда нечего взять, хотя в винде уже с winXP кажется всегда есть нетовские компиляторы. Вот у меня на win10 C:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe - компилятор C# сразу после установки системы. Т.е на более ранних системах только v4.0.30319 может быть другая ну и вместо Framework64 - Framework. Т.е. компялторв C# есть, а на нем гораздо проще найти готовый пример.
#35 by Woldemar177
C++ в первых главах Страуструп рассказывает как это сделать. ЗЫ не надо ему дельфи.
#36 by Woldemar177
Сдается мне у ТС все гораздо проще, это можно сделать, просто он всю часть задачи не рассказывает.
#37 by Брудвар
Если бы можно было скачивать, я бы так не извращался.
#38 by Брудвар
Нельзя ничего отнести на ту машину. Писал уже. Можно только написать с нуля.
#39 by Брудвар
Windows Server 2016 Datacenter C:WindowsMicrosoft.NETFramework64v4.0.30319csc.exe Да, есть такой файл. Ахахахха! Круто! Спасибо, выручил.
#40 by Брудвар
Ну тут советовали что типа он умеет.
#41 by Мэс33
И батник, который вызывает hex2bin -b xxxx.hex
#42 by Брудвар
не читатель. Нельзя скачивать. Нужно написать.
#43 by Woldemar177
Да у нас здесь опять студент биздельник и лентяй. Безобразие.
#44 by Мэс33
и кому это надо сегодня? И зачем? Студент что ли?)
#45 by Мэс33
#46 by Брудвар
Писал уже в . Нужно на компе на котором нет доступа к закачке файлов сделать свою прогу которая сможет конвертировать текст в файлы. Если даже я и студент, то к учебе это не имеет никакого отношения.
#47 by Брудвар
Интересно. Спасибо за ответ.
#48 by Брудвар
На бейсике жутко долго работает. Что-то с компом у меня странное. Вроде проц 4.2 гигагерца должен быстро обработать, игры же не тормозят, а тут такие затупы на двухмегабайтном файле. Уже несколько минут думает. Проц грузит на 25%.
#49 by NorthWind
так игры и не на интерпретируемом скрипте написаны. Напиши на сях чтение блоками в память, обработку, запись блоками в файл - будет летать.
#50 by Брудвар
Хочешь сказать что интерпретируемые языки в миллион раз медленнее?
#51 by Брудвар
Я писал обработку изображений по 10 мегабайт, попиксельно, на жаваскрипте который выполняется в браузере, и то за секунду скрипт выполнялся. А тут три строчки кода и два мегабайта в файле до сих пор тупит, уже несколько часов. Правда мелкие файлы на пару килобайт делаются быстро.
#52 by NorthWind
Уже много раз сказано - vbs плохо подходит для работы с двоичными данными. Когда пытаешься натянуть сову на глобус заместо использования подходящего инструмента - скорости ждать не стоит, надо радоваться что вообще работает :) А за то время, сколько висит эта ветка, можно было раза три переписать это на более подходящих языках...
#53 by igorPetrov
"Я писал обработку изображений .... на жаваскрипте" Звездишь и не чихаешь...
#54 by NorthWind
почему? Это же штатная функция браузерного скрипта и оно вполне может работать быстро, если нет каких-то сильно долгих математических извращений над пикселами.
#55 by Брудвар
Разобрался, мой косяк. Соединял длинные строки. Исправил, теперь работает хорошо. Чувак по себе судит. Не обращай внимания.
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С