Имя: Пароль:
1C
1С v8
XOR как реализовать в 1с ?
,
0 Sova123
 
07.05.13
16:22
XOR("11113e359f2563b7404d4a4de100cc6b", "57993e359f2563b7404d4a4de100cc6b",);
как сложить эти две строки?
1 Волшебник
 
07.05.13
16:23
2 Волшебник
 
07.05.13
16:24
3 mikecool
 
07.05.13
16:29
(2) ты за телепата отрабатываешь? )
4 Sova123
 
07.05.13
16:29
а что делает функция в (2)  Результат = МойКсор(ЛевыйОперанд,ПравыйОперанд);
5 Irek-kazan
 
07.05.13
16:30
Твой Ксор ты и разбирайся
6 Волшебник
 
07.05.13
16:31
(4) она делает то, что реализовано в (1)
7 Живой Ископаемый
 
07.05.13
16:31
с чем сложить?
8 Wobland
 
07.05.13
16:33
а что такое логическое или применительно к строкам?
9 Sova123
 
08.05.13
15:48
написала вот так вот
  ScrptCtrl = новый COMObject("MSScriptControl.ScriptControl");
      ScrptCtrl.language="vbscript";
      ScrptCtrl.AddCode("
      | Function XOREncryption(CodeKey, DataIn)
      | Dim lonDataPtr As Long
      | Dim strDataOut As String
      | Dim intXOrValue1 As Integer, intXOrValue2 As Integer
      |
      |
      | For lonDataPtr = 1 To Len(DataIn)
      |    intXOrValue1 = Asc(Mid$(DataIn, ((lonDataPtr Mod Len(DataIn)) + 1), 1))
      |   intXOrValue2 = Asc(Mid$(CodeKey, ((lonDataPtr Mod Len(CodeKey)) + 1), 1))
      |    strDataOut = strDataOut + chr(intXOrValue1 XOr intXOrValue2)
      |   Next lonDataPtr
      |   XOREncryption = strDataOut
      | End Function");
     
Выдает вот такую ошибку
{Форма.Форма.Форма(244)}: Ошибка при вызове метода контекста (AddCode): Произошла исключительная ситуация (Ошибка компиляции Microsoft VBScript): Предполагается наличие окончания инструкции
10 mikecool
 
08.05.13
15:51
(9) а где конец циклу?
11 acsent
 
08.05.13
15:52
в бсп есть функция ПобитовоеИЛИ
12 NS
 
08.05.13
15:52
Конецциклу есть, но в vbs вроде раньше не указывалась в next переменная цикла.
13 1Сергей
 
08.05.13
16:27
Перем СоответствиеЧисел;

Процедура КнопкаВыполнитьНажатие(Кнопка)
   Число1 = ВРЕГ(Значение1);
   Число2 = ВРЕГ(Значение2);
   Результат = "";
   Для Идн = 1 по СтрДлина(Число1) Цикл
       Результат = Результат + СоответствиеЧисел.Получить(Сред(Число1, Идн, 1) + Сред(Число2, Идн, 1));
   КонецЦикла;
   Значение3 = Результат;
КонецПроцедуры

Функция XORчисел(Число1, Число2)
   МладшийБит = 0;
   Если Число1%2 = Число2%2 тогда
       МладшийБит = 0;
   Иначе
       МладшийБит = 1;
   КонецЕсли;
   Если (Число1>1)ИЛИ(Число2>1) Тогда
       Возврат XORчисел(Цел(Число1/2), Цел(Число2/2))*2 + МладшийБит;
   Иначе
       Возврат МладшийБит;
   КонецЕсли;
КонецФункции


Процедура ПриОткрытии()
   СоответствиеЧисел = Новый Соответствие;
   Для у = 0 по 15 Цикл
       уШ = ?(у<10, "" + у, Символ(55 + у));
       Для х = 0 по 15 Цикл
           хШ = ?(х<10, "" + х, Символ(55 + х));
           рез = XORчисел(х, у);
           СоответствиеЧисел.Вставить(хШ + уШ, ?(рез<10, "" + рез, Символ(55 + рез)));
       КонецЦикла;
   КонецЦикла;
КонецПроцедуры
14 1Сергей
 
08.05.13
16:31
(13) + за минут 15 написал
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн