Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > TIdBase64Decoder, проблема в конце декодирования


Автор: maxim1000 22.2.2005, 18:20
C++Builder 6.0 Enterprise Suite
довелось мне программировать на Builder'е, надо раскодировать данные из Base64
алгоритм простой, реализовать его недолго (чувствую, этим все и закончится)
но я подумал: не зря же куча людей писала кучу компонент, надо попробовать этим воспользоваться
нашел компонент TIdBase64Decoder
использую такой код:
Код

       Form1->IdBase64Decoder1->Reset();
       Form1->IdBase64Decoder1->AutoCompleteInput=true;
       result=Form1->IdBase64Decoder1->CodeString(source);
       ResultLength=result.Length();

проверяю на двух наборах данных (закодированы даже не мной, а одной уважаемой фирмой):
1. закодированный файл с исходным размером 2615 байт (соответственно 1 '=' в конце)
2. закодированный файл с исходным размером 3249 байт (соответственно 0 '=' в конце)
второй декодируется нормально
с первым возникает некая странность - добавляется лишний символ
т.е. 2615 байт декодируются абсолютно правильно, а потом к ним дописывается еще один символ
вроде и в спецификацию смотрел, по идее, не должно быть такого...
сталкивался ли кто-нибудь с такой проблемой? и что делать?
и проблема ли это (может, просто я немного подглючиваю smile)
алгоритм-то я напишу, похоже, сам, но ведь интересно...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)