Тема: WSH: работа с бинарными данными через ADODB.Stream на VBS
Привет как можна ета WSH: пример работы с бинарными данными через ADODB.Stream сделят наVBScript ...
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Серый форум → Общение → Windows Script Host, HTA (VBScript, JScript) → WSH: работа с бинарными данными через ADODB.Stream на VBS
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Привет как можна ета WSH: пример работы с бинарными данными через ADODB.Stream сделят наVBScript ...
armenxxx1
Ещё одно "ета" или "сделят", и будет бан.
armenxxx1
Ещё одно "ета" или "сделят", и будет бан.
К сожалению я Армении и я в настоящее время в Болгарии лучше понимать русский язык, но говорить/писать очен плохо.... извините исчо раз.
Например, так:
<job>
<script language="VBScript">
Option Explicit
Dim strText
strText = getResource("pic")
With New RegExp
.Global = True
.Pattern = "\s"
strText = .Replace(strText, "")
.Pattern = "(.{2})"
strText = .Replace(strText, "%$1")
End With
With CreateObject("ADODB.Stream") ' text stream in ISO-8859-1 charset
.Type = 2 ' binary mode
.Charset = "ISO-8859-1" ' to avoid character conversion upper 127 ascii code
.Open
.WriteText Unescape(strText)
.SaveToFile "c:\face.png", 2
.Close
End With
</script>
<resource id="pic">
89504E470D0A1A0A0000000D4948445200000027000000420803000000E3443FEE0000000C504C54
45F0EEEEF95353F59393FF04047F58B0FF000000097048597300002E2300002E230178A53F760000
014249444154789CED955902C42008434DB8FF9DA7AD4BD9AC1C60FCAA363E10115AF38361251D40
4D27520242A40414290171EB0A409112F0F6AEE2E1C33A033BEA0C1CA413900374022ECE37900BF3
0D5494EBB380FB061AA7F6401AC41EE8CEB803D20176C007C76B1C8000D0930A5D4A208D35658D61
9069D28A3821E6CC60FB5E1013A2B679AB7CB7749B026F1A7ADB74157362EE49B9417D1C1349172D
636DAF83F1DE7EEB3889F729E7B943EE7434B762CFA1269C81EBF74B1BC035E3B80215671DB267E1
4AABF523E6C57B46F3E315B6960BA16DC4B49E89A4F3282F0BD4897F1A2C7606D43BC35F57D7857A
1375CF0DF9C297E87A6AF9040B3A2E9DAF48C11134575A32DD0439A0D7ADA70857846C00D4DF5034
9D4C55A45D5B31B2F104231269D95D2DA12F317D96ABBA0BDE5692B9A3EA847AF1794654544EBAE9
5AC7F103F62B06FEC580AB3F0000000049454E44AE426082
</resource>
</job>
Привет alexii извини но я не хорошо выразился я хочу скрипт целиком била написана VBScript (.vbs) заранее спасибо
Скрипт целиком написан (точнее, переведён с JScript) на VBScript. Формат файла — *.wsf: WSH: пишем сценарии в формате WSF.
Скрипт целиком написан (точнее, переведён с JScript) на VBScript. Формат файла — *.wsf: WSH: пишем сценарии в формате WSF.
Это новая для меня большое спасибо
Другой метод без использования *.wsf только *.vbs
strText="89504E470D0A1A0A0000000D4948445200000027000000420803000000E3443FEE0000000C504C5445F0EEEEF95353F59393FF04047F58B0FF000000097048597300002E2300002E230178A53F760000014249444154789CED955902C42008434DB8FF9DA7AD4BD9AC1C60FCAA363E10115AF38361251D404D27520242A40414290171EB0A409112F0F6AEE2E1C33A033BEA0C1CA413900374022ECE37900BF30D5494EBB380FB061AA7F6401AC41EE8CEB803D20176C007C76B1C8000D0930A5D4A208D35658D619069D28A3821E6CC60FB5E1013A2B679AB7CB7749B026F1A7ADB74157362EE49B9417D1C1349172D636DAF83F1DE7EEB3889F729E7B943EE7434B762CFA1269C81EBF74B1BC035E3B80215671DB267E14AABF523E6C57B46F3E315B6960BA16DC4B49E89A4F3282F0BD4897F1A2C7606D43BC35F57D7857A1375CF0DF9C297E87A6AF9040B3A2E9DAF48C11134575A32DD0439A0D7ADA70857846C00D4DF50349D4C55A45D5B31B2F104231269D95D2DA12F317D96ABBA0BDE5692B9A3EA847AF1794654544EBAE95AC7F103F62B06FEC580AB3F0000000049454E44AE426082"
With New RegExp
.Global = True
.Pattern = "\s"
strText = .Replace(strText, "")
.Pattern = "(.{2})"
strText = .Replace(strText, "%$1")
End With
With CreateObject("ADODB.Stream") ' text stream in ISO-8859-1 charset
.Type = 2
.Charset = "ISO-8859-1"
.Open
.WriteText Unescape(strText)
.SaveToFile "face.png", 2
.Close
End With
Другой метод без использования *.wsf только *.vbs
strText="89504E470D0A1A0A0000000D4948445200000027000000420803000000E3443FEE0000000C504C5445F0EEEEF95353F59393FF04047F58B0FF000000097048597300002E2300002E230178A53F760000014249444154789CED955902C42008434DB8FF9DA7AD4BD9AC1C60FCAA363E10115AF38361251D404D27520242A40414290171EB0A409112F0F6AEE2E1C33A033BEA0C1CA413900374022ECE37900BF30D5494EBB380FB061AA7F6401AC41EE8CEB803D20176C007C76B1C8000D0930A5D4A208D35658D619069D28A3821E6CC60FB5E1013A2B679AB7CB7749B026F1A7ADB74157362EE49B9417D1C1349172D636DAF83F1DE7EEB3889F729E7B943EE7434B762CFA1269C81EBF74B1BC035E3B80215671DB267E14AABF523E6C57B46F3E315B6960BA16DC4B49E89A4F3282F0BD4897F1A2C7606D43BC35F57D7857A1375CF0DF9C297E87A6AF9040B3A2E9DAF48C11134575A32DD0439A0D7ADA70857846C00D4DF50349D4C55A45D5B31B2F104231269D95D2DA12F317D96ABBA0BDE5692B9A3EA847AF1794654544EBAE95AC7F103F62B06FEC580AB3F0000000049454E44AE426082" With New RegExp .Global = True .Pattern = "\s" strText = .Replace(strText, "") .Pattern = "(.{2})" strText = .Replace(strText, "%$1") End With With CreateObject("ADODB.Stream") ' text stream in ISO-8859-1 charset .Type = 2 .Charset = "ISO-8859-1" .Open .WriteText Unescape(strText) .SaveToFile "face.png", 2 .Close End With
Привет как написать ета код на VBA...
Помогите написать код на VBA...
Что-то наподобие:
Set objScriptControl = CreateObject("MSScriptControl.ScriptControl")
objScriptControl.Language = "VBScript"
strText = "89504E470D0A1A0A0000000D4948445200000027000000420803000000E3443FEE0000000C504C5445F0EEEEF95353F59393FF04047F58B0FF000000097048597300002E2300002E230178A53F760000014249444154789CED955902C42008434DB8FF9DA7AD4BD9AC1C60FCAA363E10115AF38361251D404D27520242A40414290171EB0A409112F0F6AEE2E1C33A033BEA0C1CA413900374022ECE37900BF30D5494EBB380FB061AA7F6401AC41EE8CEB803D20176C007C76B1C8000D0930A5D4A208D35658D619069D28A3821E6CC60FB5E1013A2B679AB7CB7749B026F1A7ADB74157362EE49B9417D1C1349172D636DAF83F1DE7EEB3889F729E7B943EE7434B762CFA1269C81EBF74B1BC035E3B80215671DB267E14AABF523E6C57B46F3E315B6960BA16DC4B49E89A4F3282F0BD4897F1A2C7606D43BC35F57D7857A1375CF0DF9C297E87A6AF9040B3A2E9DAF48C11134575A32DD0439A0D7ADA70857846C00D4DF50349D4C55A45D5B31B2F104231269D95D2DA12F317D96ABBA0BDE5692B9A3EA847AF1794654544EBAE95AC7F103F62B06FEC580AB3F0000000049454E44AE426082"
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "\s"
strText = .Replace(strText, "")
.Pattern = "(.{2})"
strText = .Replace(strText, "%$1")
End With
With CreateObject("ADODB.Stream") ' text stream in ISO-8859-1 charset
.Type = 2
.Charset = "ISO-8859-1"
.Open
.WriteText objScriptControl.Eval("UnEscape(""" & strText & """)")
.SaveToFile "c:\face.png", 2
.Close
End With
Set objScriptControl = Nothing
А необходимость? В VBA есть функции, умеющие непосредственно работать с бинарными файлами.
alexii Большое спасибо
Но после создания изображения не останавливается... добавил objScriptControl.quit(0) но выдает ошибка.
Описывайте подробно, что Вы делаете.
Описывайте подробно, что Вы делаете.
Видео... http://zalil.ru/29878024
Ссылки оформляйте тэгом «url».
Это не VBA (Visual Basic for Application — внутренний язык Microsoft Office), а «чистый» VB (Visual Basic). Ну, и? Судя по ролику, всё работает. Что не так? Что Вы подразумеваете под:
Но после создания изображения не останавливается...
Автоматическое закрытие формы «Form1»?
Ссылки оформляйте тэгом «url».
Это не VBA (Visual Basic for Application — внутренний язык Microsoft Office), а «чистый» VB (Visual Basic). Ну, и? Судя по ролику, всё работает. Что не так? Что Вы подразумеваете под:
Но после создания изображения не останавливается...
Автоматическое закрытие формы «Form1»?
Извините отредактировал...
Да, я хочу "автоматическое закрытие формы «Form1»" Буду очень признателен если вы скажете мне
Я точно не помню, но попробуйте в самый конец, перед «End Sub», добавить:
Unload Me
P.S. В принципе, можно обойтись совсем без формы.
Прекрасно работает alexii спасибо
Не получить то, что я хочу . Когда добавил больше код не получается создать *.png ...
видео... http://zalil.ru/29879647
Лучше приведите сам код.
Слишком длинный текст.
Не можно разделить шестнадцатеричный код...
Например так... Но я не знаю на VB как должен выглядеть...
strText="89504E470D0A1A0A0000000D4948445200000027000000420803000000E3443FEE000"&_
"0000C504C5445F0EEEEF95353F59393FF04047F58B0FF000000097048597300002E2300002E23"&_
"0178A53F760000014249444154789CED955902C42008434DB8FF9DA7AD4BD9AC1C60FCAA363E1"&_
"0115AF38361251D404D27520242A40414290171EB0A409112F0F6AEE2E1C33A033BEA0C1CA413"&_
"900374022ECE37900BF30D5494EBB380FB061AA7F6401AC41EE8CEB803D20176C007C76B1C800"&_
"0D0930A5D4A208D35658D619069D28A3821E6CC60FB5E1013A2B679AB7CB7749B026F1A7ADB74"&_
"157362EE49B9417D1C1349172D636DAF83F1DE7EEB3889F729E7B943EE7434B762CFA1269C81E"&_
"BF74B1BC035E3B80215671DB267E14AABF523E6C57B46F3E315B6960BA16DC4B49E89A4F3282F"&_
"0BD4897F1A2C7606D43BC35F57D7857A1375CF0DF9C297E87A6AF9040B3A2E9DAF48C11134575"&_
"A32DD0439A0D7ADA70857846C00D4DF50349D4C55A45D5B31B2F104231269D95D2DA12F317D96"&_
"ABBA0BDE5692B9A3EA847AF1794654544EBAE95AC7F103F62B06FEC580AB3F0000000049454E4"&_
"4AE426082"
With New RegExp
.Global = True
.Pattern = "s"
strText = .Replace(strText, "")
.Pattern = "(.{2})"
strText = .Replace(strText, "%$1")
End With
With CreateObject("ADODB.Stream") ' text stream in ISO-8859-1 charset
.Type = 2
.Charset = "ISO-8859-1"
.Open
.WriteText Unescape(strText)
.SaveToFile "face.png", 2
.Close
End With
Точно так же. Но ни WSH, ни VBА не осиливают подобную операцию (&) в заданном размере. «Отожрав» всю память, они, как правило, отваливаются по ошибке исполнения. В то же время, если хранить строку в обычном текстовом файле, считывать эту строку из текстового файла в переменную strText — никаких проблем, понятно, не возникает.
Вы можете озвучить конечную цель и необходимость именно такого решения Вашей задачи?
P.S. Почему бы для этих целей (Вы ведь пишете на «большом» языке, на VB) не использовать обычные ресурсы в проекте?!
Точно так же. Но ни WSH, ни VBА не осиливают подобную операцию (&) в заданном размере. «Отожрав» всю память, они, как правило, отваливаются по ошибке исполнения. В то же время, если хранить строку в обычном текстовом файле, считывать эту строку из текстового файла в переменную strText — никаких проблем, понятно, не возникает.
Вы можете озвучить конечную цель и необходимость именно такого решения Вашей задачи?
P.S. Почему бы для этих целей (Вы ведь пишете на «большом» языке, на VB) не использовать обычные ресурсы в проекте?!
alexii Моя идея заключается в создании несколько файлов из несколько шестнадцатеричный кодов не обязательно быть использованы скрипт выше... Глядя только на легкость без использования длинных VB кодов...
Повторюсь: что мешает хранить бинарные файлы непосредственно в ресурсах?
Можете ли вы дать пример...
Не могу — у меня нет сейчас в наличии VB6.
Другой метод... *.vbs
Data = "89504E470D0A1A0A0000000D4948445200000027000000420803000000E3443FEE0000000C504C5445F0EEEEF95353F59393FF04047F58B0FF000000097048597300002E2300002E230178A53F760000014249444154789CED955902C42008434DB8FF9DA7AD4BD9AC1C60FCAA363E10115AF38361251D404D27520242A40414290171EB0A409112F0F6AEE2E1C33A033BEA0C1CA413900374022ECE37900BF30D5494EBB380FB061AA7F6401AC41EE8CEB803D20176C007C76B1C8000D0930A5D4A208D35658D619069D28A3821E6CC60FB5E1013A2B679AB7CB7749B026F1A7ADB74157362EE49B9417D1C1349172D636DAF83F1DE7EEB3889F729E7B943EE7434B762CFA1269C81EBF74B1BC035E3B80215671DB267E14AABF523E6C57B46F3E315B6960BA16DC4B49E89A4F3282F0BD4897F1A2C7606D43BC35F57D7857A1375CF0DF9C297E87A6AF9040B3A2E9DAF48C11134575A32DD0439A0D7ADA70857846C00D4DF50349D4C55A45D5B31B2F104231269D95D2DA12F317D96ABBA0BDE5692B9A3EA847AF1794654544EBAE95AC7F103F62B06FEC580AB3F0000000049454E44AE426082"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FileObj = FSO.CreateTextFile("face.png", True)
For i = 1 To Len(Data) Step 2
FileObj.Write Chr(CLng("&H" & Mid(Data,i,2)))
Next
И все же я не могу сделать VB
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться