Перекодирование в BASE64 в 1С7.7

Как говорится, без комментариев, перевод в BASE64 в 1С7.7

Функция КодироватьBase64(Текст)
    Перем Алфавит;
    Перем Группа, Символ;
    Перем Значение, Разряд;
    Перем Символ6, Значение6;
    Перем Значение8, Символ8;
    Перем Текст64;
    
    // Подготовка алфавита и результата
    Алфавит = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    Текст64 = "";
          
    Группа = "";
    Для Номер=1 По СтрДлина(Текст) Цикл
    
    Символ = Сред(Текст, Номер, 1);
    Группа = Группа + Символ;
    
    Если ((СтрДлина(Группа) = 3) или (Номер = СтрДлина(Текст))) Тогда
        
        // Получение числового значения из 3-х символов
            Значение = 0;
            Разряд = 2;
            Пока Разряд >= 0 Цикл
                Символ8 = Сред(Группа, 3 - Разряд, 1);
                Значение8 = КодСимв(Символ8);
                Если Разряд = 1 Тогда
                    Значение8 = Значение8 * 256;
                ИначеЕсли Разряд = 2 Тогда
                    Значение8 = Значение8 * 256 * 256;
                КонецЕсли;
                Значение = Значение + Значение8;
                Разряд = Разряд - 1;
            КонецЦикла;
            
        // Получение 4-х символов из числового значения    
            Разряд = 3;
            Пока Разряд >= 0 Цикл
                Значение6 = Значение;
                Если Разряд = 3 Тогда
                    Значение6 = Цел(Значение6 / 64 / 64 / 64);
                    Значение = Значение - Значение6 * 64 * 64 * 64;
                ИначеЕсли Разряд = 2 Тогда
                    Значение6 = Цел(Значение6 / 64 / 64);
                    Значение = Значение - Значение6 * 64 * 64;
                ИначеЕсли Разряд = 1 Тогда
                    Значение6 = Цел(Значение6 / 64);
                    Значение = Значение - Значение6 * 64;
                КонецЕсли;      
                
                Если СтрДлина(Группа) < 3 Тогда
                    Если Значение6 = 0 Тогда
                        Значение6 = 64;
                    КонецЕсли;
                КонецЕсли;

                Символ6 = Сред(Алфавит, Значение6+1,1);
                Текст64 = Текст64 + Символ6;
                Разряд = Разряд - 1;
            КонецЦикла;    
                        
        Группа = "";    
        КонецЕсли;
    КонецЦикла;  
    
    Возврат Текст64;
    
КонецФункции
Author: admin

13 thoughts on “Перекодирование в BASE64 в 1С7.7

  1. Уведомление: purchase androxal generic uae
  2. Уведомление: order rifaximin generic for sale
  3. Уведомление: get xifaxan price usa
  4. Уведомление: how to buy staxyn purchase tablets
  5. Уведомление: get avodart cost effectiveness
  6. Уведомление: pharmacy canadian dutasteride
  7. Уведомление: gabapentin no physician approval
  8. Уведомление: purchase fildena generic fildena
  9. Уведомление: ordering itraconazole price australia
  10. Уведомление: kamagra americká expresní kanada
  11. Уведомление: acheter kamagra nous consulter en ligne

Добавить комментарий