|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.08.2008, 22:55 | #1 |
Форумчанин
Регистрация: 08.10.2007
Сообщений: 125
|
кодировать в base64
Здравствуйте, подскажите пожайлуста как закодировать бинарный файл в base64?
|
28.08.2008, 23:43 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Вот для строк. Но думаю перевести из String в Pointer не составит труда...
Хотя даже зачем вообще переводить...прочитали в PChar ваш бинарник и пихнули в эти процедуры )) вот и все Код:
|
28.08.2008, 23:59 | #3 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Глянь тут http://www.swissdelphicenter.ch/en/showcode.php?id=1524
ДОБАВЛЕНО BOBAH13, долго не обновлял страницу, приношу извинения. Последний раз редактировалось eoln; 29.08.2008 в 00:19. |
29.08.2008, 00:14 | #4 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Цитата:
|
|
29.08.2008, 00:42 | #5 |
Форумчанин
Регистрация: 08.10.2007
Сообщений: 125
|
Для строк всё работает нормально, но если файл содержит бинарные символы ничего не получается. Допустим если файл весит 2 метра и мы его кодируем его, то на выходе получается 100 байт. Надо какую то использовать функцию , на вход которой мы подаём данные не в виде строки. Я нашёл в стандартных компонентах компонент IdEncoderMIME:
IdEncoderMIME1.Encode(Tstream,integ er):string; только использовать его не получается |
29.08.2008, 01:16 | #6 | |
Форумчанин
Регистрация: 08.10.2007
Сообщений: 125
|
Цитата:
var p: PChar; s:string; begin GetMem(p, 255); with TFileStream.create('D:\temp\1\1', fmOpenReadWrite) do try Seek(10, soFromBeginning); read(p^, 254); finally free; end; FreeMem(p); end; файл 1 весит > 2 метров , а в Pchar записывается только три символа? |
|
29.08.2008, 09:23 | #7 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Ооо.. ну вам еще учиться и учиться Писал сразу тут, за не корректность извините
И что же в вашем понятии "бинарные" символы )) а они бывают и не бинарными ? Код:
|
29.08.2008, 09:52 | #8 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
да расслабьтесь, пацаны. ничего у вас с PChar не получится.... :-)
из хелпа на PChar Цитата:
Цитата:
рекомендую заменить на обычный статический Array: Код:
|
||
29.08.2008, 13:02 | #9 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Классно пошутили Скажите какая разница между PChar и Pointer ? Когда скажите тогда и поговорим.... В том то и дело что никакой... что PChar указатель на байт что Pointer что оба они это всеголишь 32 битное число... и то что вы приводите справку из дельфи что типа если попытаться преобразовать Stirng(PChar()) то получите строку начиная с байта на который указывает PChar и закончится строка когда встретится нулевой байт. А мы говорим не о строках, а о данных выделенных в памяти... И вы подразумиваите что в 32х битной системе защищенного режима нельзя выделить память больше чем 255 т.к. вы указали тип PChar и не Pointer ? Короче бред...
|
29.08.2008, 13:28 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
BOBAH13, умничаем, да?? :-))))
в том то и дело, что если бы вместо PChar был Pointer - то всё было бы отлично! но это немножечко разные вещи. я же привёл цитату из хелпа про PChar! не согласны? ну тогда ответьте на два простых вопроса: 1) почему не работал код из поста #6 2) что будет после выполнения кода Код:
и последнее. BOBAH13, я вижу,читаю Ваши посты. Поэтому НИ МАЛЕЙШЕГО сомнения в Вашей компетентности у меня нет. Просто, думаю, тут наложилось знание многих языков и внутренностей ОС... многия знания - многия печали :-) |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
base64 | BlackOmen | Общие вопросы Delphi | 2 | 02.05.2008 16:30 |