|
v7: Base64Значение в 7-ке | ☑ | ||
---|---|---|---|---|
0
JetBrain
02.06.16
✎
11:21
|
Добрый день.
столкнулся с отправкой бинарника из 1с 7.7, на 8-ке задача решается одной строкой как быть с семеркой? в ссылке пример о чем идет речь http://howknow1c.ru/jazyk-1s/dvoichnyedannye-1c-base64stroka-1c-base64znachenie-1c.html |
|||
1
Mikeware
02.06.16
✎
11:37
|
(0) было что-то в компонентах. Вроде в диалмэйле
|
|||
2
Serginio1
02.06.16
✎
11:39
|
||||
3
Serginio1
02.06.16
✎
11:49
|
2+
врап=новый COMОбъект("NetObjectToIDispatch45"); врап.УстЭтоСемерка(); File =Врап.ПолучитьТип("System.IO.File"); Convert =Врап.ПолучитьТип("System.Convert"); bytes = File.ReadAllBytes(ПутьКФайлу); данные = Convert.ToBase64String(bytes); |
|||
4
Serginio1
02.06.16
✎
11:53
|
Ну и обратная операция
bytes = Convert.FromBase64String(b64Str); File.WriteAllBytes(ПутьКФайлу, bytes); |
|||
5
JetBrain
02.06.16
✎
11:59
|
(1) Диалмайл.длл делает строку xbas64, значения xbase64 в шестнадцатиричном формате я не увидел в нем.
|
|||
6
Ёпрст
02.06.16
✎
12:05
|
Тут еще посмотри
http://www.1cpp.ru/docum/html/BinaryData.html ЗЫ: не помню уже, где-то код валялся на чистом 1с и без вк |
|||
7
Остап Сулейманович
02.06.16
✎
12:08
|
(0) Вот здесь : http://forum.script-coding.com/viewtopic.php?id=2848 на любой вкус. DOMDocument, JSBin.BinaryOps, CAPICOM, куча сторонних костылей, алгоритмы прямого преобразования...
|
|||
8
JetBrain
02.06.16
✎
12:17
|
Как и в случае с диалмайл, "костылики" делают base64text, а не base64binary тип данных, почувствуйте разницу :) Выход нужен в HEX16.
|
|||
9
Туц
02.06.16
✎
12:30
|
//******************************************************************************
Функция глКодировать(Стр, Кодировка) ЦДО=СоздатьОбъект("CDO.Message"); БодиПарт=ЦДО.BodyPart; Поля=БодиПарт.Fields; Поле=Поля.Item("urn:schemas:mailheader:content-type"); Поле.Value="text/plain; charset=""windows-1251"""; Поля.Update(); Стрим = БодиПарт.GetDecodedContentStream(); Стрим.charset = "windows-1251"; Стрим.WriteText(Стр); Стрим.Flush(); БодиПарт.ContentTransferEncoding = Кодировка; Стрим=БодиПарт.GetEncodedContentStream(); Возврат Стрим.ReadText(); КонецФункции //****************************************************************************** Функция глДекодировать(Стр, Кодировка) ЦДО=СоздатьОбъект("CDO.Message"); БодиПарт=ЦДО.BodyPart; БодиПарт.ContentTransferEncoding = Кодировка; Стрим=БодиПарт.GetEncodedContentStream(); Поля=БодиПарт.Fields; Поле=Поля.Item("urn:schemas:mailheader:content-type"); Поле.Value="text/plain; charset=""windows-1251"""; Поля.Update(); Стрим.WriteText(Стр); Стрим.Flush(); Стрим = БодиПарт.GetDecodedContentStream(); Стрим.charset = "windows-1251"; Возврат Стрим.ReadText(); КонецФункции Строка64 = глКодировать(СтрокаДля64,"base64"); |
|||
10
JetBrain
02.06.16
✎
12:31
|
...а хотя вот тут есть пример, полученный string еще в hex конвертнуть, в два этапа но все же:
'Конвертация String в Byte() Function strToBin(text) With document.createElement("xml").createElement("t") .dataType = "bin.hex" .text = strTohex(text) strToBin = .nodeTypedValue End With End Function |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |