Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как раскодировать текст из кода Base64 / 25 сообщений из 25, страница 1 из 1
23.06.2005, 06:43
    #33130208
Sefem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Привет Всем!
Есть текст "z+Dy8OD16O0g0SDC" как его расшифровать если известно что закодирован Base64. Работаю в PB 10.
...
Рейтинг: 0 / 0
23.06.2005, 07:35
    #33130229
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.
...
Рейтинг: 0 / 0
23.06.2005, 07:37
    #33130230
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
...
Рейтинг: 0 / 0
23.06.2005, 07:41
    #33130233
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
А вообще можно и на х, сорри на гугл послать :-)
...
Рейтинг: 0 / 0
23.06.2005, 08:03
    #33130248
Sefem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Не могу попасть на ссылки, выдает:

The address is not available from this machine

может попозже попробовать
...
Рейтинг: 0 / 0
01.07.2005, 13:36
    #33144996
sefem
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Если кому интересно решил проблему следующим образом:
В моем случае:
w_1 ==> Declare Local Efternak Functions ==> Local External Function :

FUNCTION int Base64Decode ( ref string source, ref string result, int n ) LIBRARY "BASE64.DLL" ALIAS FOR "Base64Decode;ansi"

вызываю:
String lsText = "z+Dy8OD16O0g0SDC"
String Str // раскодированный текст
Int i // кол-во символов в Str
Int liLen

Str = Space ( Len(lsText) / 4 * 3) + Char(0)
liLen = Len ( lsText )
i = Base64Decode ( lsText, Str, liLen )

вроде так, как выложить длл не знаю подскажите.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
16.05.2007, 19:41
    #34530590
Как раскодировать текст из кода Base64
Вот твоя расшифровка "Патрахин С В"
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.01.2009, 17:07
    #35770045
Дремучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Люди добрые, простите за археологию, но... :(

В общем есть у меня проблема. Надо из BASE64 перекодировать в нормальный вид. И вроде бы все есть... но не выходит каменный цветок. :(

Вариант предложенный Филиппом ("Base64 Encoding ActiveX Library 2.04") у меня не заработал. Что-то я видимо не так прикрутил. Прописал в Global External Functions следующий код:
function string base64_decode( string sourse ) library 'base64.dll' alias for 'Decode'
но при вызове функции при выполнени программы получаю ругань: "Bad runtime function reference... бла-бла-бла".

Попробовал поискать уже существующие решения... столкнулся с тем, что, или у dll нет описания и непонятно что с какими параметрами вызывать, или описание есть (предположительно), но тогда надо скачивать архив, а это у меня с работы делать нельзя (физически).

Собственно буду признателен за любую помощь. Меня совершенно устроит, или немного более подробное пояснение, что надо сделать, что бы заработал "вариант Филиппа", или ссылка на dll`ку (в смысле где можно скачать именно одну dll вне всяких архивов) с указанием что и с какими параметрами надо вызывать.
...
Рейтинг: 0 / 0
21.01.2009, 17:08
    #35770047
Дремучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Вдогонку. У меня PB 9.0.2.
...
Рейтинг: 0 / 0
21.01.2009, 17:35
    #35770141
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Вот, по-моему должно работать - вырезал из проекта и не проверял. Для небольшого ускорения можно задавать длинну массива out[] до цикла распаковки.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
char speed[]
long lc_table[ 256 ] =       { 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 62 , 99 , 99 , 99 , 63 , &
                             52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 99 , 99 , 99 , 64 , 99 , 99 , &
                             99 ,  0 ,  1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,  9 , 10 , 11 , 12 , 13 , 14 , &
                             15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , &
                             41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , &
                             99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99 , 99  &
                            }
long i,j,p,ln,k
long mas[ 4 ]
char out[]

ln = len(is_data) //is_data - строка для декодирования
speed = is_data
for i =  1  to ln
  p = lc_table[asc(speed[i]) +  1 ]
  if p <>  99  then
    mas[j] = p
    j = j + 1 
    if j =  5  then
      //Набрали четверку байт
      k ++
      out[k] = char(mas[ 1 ] *  4  + truncate(mas[ 2 ]/ 16 , 0 ))
      if mas[ 3 ] <>  64  then 
        k ++
        out[k] = char(mod(mas[ 2 ], 16 ) *  16  + truncate(mas[ 3 ]/ 4 , 0 ))
      end if
      if mas[ 4 ] <>  64  then 
        k ++
        out[k] = char(mod(mas[ 3 ], 4 ) *  64  + mas[ 4 ])
      end if
      j =  1 
    end if
  end if		
next
...
Рейтинг: 0 / 0
21.01.2009, 17:40
    #35770164
Дремучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Локшин МаркВот, по-моему должно работать - вырезал из проекта и не проверял.
Попробую проверить. На первый взгляд намного оптимальнее, чем у меня. Я ведь тоже реализовал сначала на PB... но мне надо перекодировать слишком большие объемы (до 10 файлов 0.5 - 2 Мб). У меня получилось чудовищно долго по времени. :(
...
Рейтинг: 0 / 0
21.01.2009, 17:56
    #35770212
Дремучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
2 Локшин Марк
Большое спасибо! Максимальный файл (13Мб) был перекодирован за 71 секунду. Долго конечно, но на это я уже могу реально опереться.

P.S. Если всплывут более быстрые варианты, то я буду только рад.
...
Рейтинг: 0 / 0
21.01.2009, 17:57
    #35770215
Дремучий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Чуть не забыл.... в приведенном примере пропущена исходная инициализация j = 1.
...
Рейтинг: 0 / 0
21.01.2009, 19:44
    #35770433
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Филипп Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.

Они там на CodeExchange всё поменяли, вот новый линк
...
Рейтинг: 0 / 0
14.03.2009, 14:37
    #35869230
Baricov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Предлагаю скачать программу "Кодер-Декодер Base64" работает отлично!
Скачать тут
...
Рейтинг: 0 / 0
16.03.2009, 09:33
    #35870559
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Дремучий 2 Локшин Марк
Большое спасибо! Максимальный файл (13Мб) был перекодирован за 71 секунду. Долго конечно, но на это я уже могу реально опереться.

P.S. Если всплывут более быстрые варианты, то я буду только рад.
Если заранее присваивать в моем примере массиву out[] например 20 миллионному элементу значение до цикла, то получится гораздо быстрее, т.к. 13 миллионов раз изменять размер out будет не быстро, причем чем больше массив, тем медленней...
...
Рейтинг: 0 / 0
16.03.2009, 23:59
    #35872854
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
ФилиппФилипп Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.

Они там на CodeExchange всё поменяли, вот новый линк

Пробовал посмотреть и то и другое, но выдает ошибку. У меня РВ10.5. Сделал миграцию, но просмотреть в работе не могу. В чем дело?
...
Рейтинг: 0 / 0
17.03.2009, 17:28
    #35874873
18-я весна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
AISФилиппФилипп Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.

Они там на CodeExchange всё поменяли, вот новый линк

Пробовал посмотреть и то и другое, но выдает ошибку. У меня РВ10.5. Сделал миграцию, но просмотреть в работе не могу. В чем дело?

PBNI extension недостаточно мигрировать (и даже не нужно).
Надо перегенерить PBD утилитой pbx2pbdXXX.exe от вашей версии PB
...
Рейтинг: 0 / 0
17.03.2009, 17:35
    #35874895
18-я весна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Я тут сегодня со скуки написал DLLку которая декодирует base64
и объект-обертку к ней, который без изменений годится для любой версии PB (от 5 и выше).
На входе String, на выходе Blob.
См. папку PB в архиве.

Если кому-то надо еще и кодирование, могу дописать во время следующего приступа скуки :)
Исходники DLL прилагаю.
...
Рейтинг: 0 / 0
09.07.2009, 13:06
    #36081834
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
18-я веснаAISФилиппФилипп Можно так
A PBNI extension that provides array manipulation, bitwise operations, base-64 encoding/decoding, CPU information, system metrics, ASA 8.x DBTools API and network operations. Updated for PB10/Unicode.

Они там на CodeExchange всё поменяли, вот новый линк

Пробовал посмотреть и то и другое, но выдает ошибку. У меня РВ10.5. Сделал миграцию, но просмотреть в работе не могу. В чем дело?

PBNI extension недостаточно мигрировать (и даже не нужно).
Надо перегенерить PBD утилитой pbx2pbdXXX.exe от вашей версии PB
Пробовал перегенерить PBD утилитой pbx2pbd105.exe как пишется в хелпе, но не получается, выдает ошибку:
"не возможно найти dll:powerpack100.pbx"
Почему?
...
Рейтинг: 0 / 0
09.07.2009, 13:29
    #36081909
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Текст ошибки
Код: plaintext
1.
2.
Can not load Dll: powerpack100.pbx!
Adding file: powerpack100.pbx into PBD:C:\temp\powerpack105.pbd ... Failed!
Не удается найти указанный файл.
...
Рейтинг: 0 / 0
09.07.2009, 19:32
    #36083101
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Только что проверил для PB11 - все работает. Наверно не так что-то делаете.

"C:\Program Files\Sybase\PowerBuilder 11.0\SDK\PBNI\pbx2pbd110.exe" powerpack100.pbd powerpack100.pbx

Adding file: powerpack100.pbx into PBD:C:\test\PBNI_PowerPack\test11\powerpack100.pbd ..
. Succeeded!
...
Рейтинг: 0 / 0
10.07.2009, 15:18
    #36084568
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Anatoly MoskovskyТолько что проверил для PB11 - все работает. Наверно не так что-то делаете.

"C:\Program Files\Sybase\PowerBuilder 11.0\SDK\PBNI\pbx2pbd110.exe" powerpack100.pbd powerpack100.pbx

Adding file: powerpack100.pbx into PBD:C:\test\PBNI_PowerPack\test11\powerpack100.pbd ..
. Succeeded!
Практически набрал аналогичное.
Код: plaintext
C:\Program Files\Sybase 10_5\Shared\PowerBuilder\pbx2pbd105.exe powerpack105.pbd powerpack100.pbx
Файл powerpack100.pbx в этом же каталоге.
И ошибку выдаёт.
Может потому, что у меня нет PBNI?
...
Рейтинг: 0 / 0
10.07.2009, 17:50
    #36084891
+/-
+/-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
путь к екзешнику возьмите в двойные кавычки.
...
Рейтинг: 0 / 0
12.07.2009, 23:00
    #36086018
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как раскодировать текст из кода Base64
Спасибо. Получилось. Таки была ошибка. :)
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как раскодировать текст из кода Base64 / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]