![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | ||
Пользователь
Регистрация: 09.05.2009
Сообщений: 12
|
![]()
Здравствуйте! У меня есть закодированый в base64 jpg файл base64.txt
если декодировать код на этом сайте то в итоге получается бинарный файл с картинкой Собственно вопросы: 1)В каких кодировках надо загружать и сохранять файл 2)Каким образом его декодировать Декодировать пробовал этим Код:
Цитата:
Цитата:
буду рад примеру ![]() |
||
![]() |
![]() |
#2 | |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
|
![]()
А почему бы не воспользоваться функциями:
Цитата:
Так же шифрует/расшифровывает Stream'ы с помощью base64. |
|
![]() |
![]() |
#3 |
Пользователь
Регистрация: 09.05.2009
Сообщений: 12
|
![]()
Спасибо огромное!!! Работает как надо))))
|
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Не существует такой вещи как просто текст. Если у вас есть строка, в памяти, в файле, или в сообщении электронной почты, вы должны знать, в какой она кодировке, иначе вы не сможете ее правильно интерпретировать или показать пользователю. Почти все глупые проблемы типа "мой вебсайт похож на тарабарщину" или "она не может читать мои электронные письма, если я использую символы с ударениями" сводятся к одному наивному программисту, который не понимет того простого факта, что если вы не говорите мне, находится ли специфическая строка в кодировке UTF-8 или ASCII или ISO 8859-1 (Латинский-1) или Windows 1252 (Западноевропейский), вы просто не сможете показать ее правильно или даже выяснить, где она заканчивается. Есть более ста кодировок символов выше кодовой точки 127, и нет никакой информации для того, чтобы выяснить, какая кодировка нужна.
В 2010-м году вы не можете просто сделать вид, что ничего такого не существует, и зарыть свою голову в песок. Возвращайтесь в свои 80-е, но больше не пишите ни одной строчки кода, пока вы не разберётесь, как работают кодировки, спасибо.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
GunSmoker, написано все правильно.
Но, Вы уж извините меня, КАКОЕ отношение это имеет к проблеме TC (тем более решённой) ?! Вы знаете, что такое BASE64 и для чего её придумали? Именно для того, чтобы избежать проблем с сотнями кодировок и потерь данных при передачи по сети. В строке, закодированной base64 нет и не может быть символов, выходящих за пределы английской кодовой таблицы (это тех, которые Вы называете "символов выше кодовой точки 127" ![]() Другое дело, что корень проблемы TC (_возможно_) заключается именно в том, что TIdDecoderMIME не умеет корректно работать с Unicode строчками (которые и используются по умолчанию в новых версия Delphi). Но согласитесь, это же не проблема автора топика! |
![]() |
![]() |
#6 | ||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Есть сильное подозрение, что автор вопроса не приложил ни малейшего усилия к познанию, что же делает предложенный код, и чем он отличается от его варианта. Надо ли говорить, что подобный подход ведёт к говно-коду?
Это не более чем позыв к улучшению своего образования. По крайней мере, это убережёт его в будущем от таких вещей как представление произвольного файла в виде строки. Сравните: Цитата:
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
Последний раз редактировалось Stilet; 05.08.2010 в 17:19. |
||
![]() |
![]() |
#7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Ну так откройте любое почтовое вложение (на уровне исходного текста = mbox) и посмотрите. По другому файлы по почте не передаются! Или, исходя из Вашего посыла, "идея передавать бинарные файлы по почте - дефектна по определению" ?!!! ![]() |
|
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Вы понимаете разницу между текстовым представлением кодированного файла и самим бинарным файлом в строке? Файл <> его base64-форма.
Что, по-вашему, (хотя бы теоретически) должно быть в Text после декодирования? Как вы собираетесь уложить JPG файл в unicode-строку?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
#9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Кстати бинарные данные оч. удобно хранить в строка или в Stream.
I'm learning to live...
|
|
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Угу, пять баллов. И что же делать, если размер файла не чётен?
И после этого мы удивляемся, почему получаются дракозябры. Строка - это не массив байт. Это массив символов. Массив байт - это разве что RawByteString, которым в коде и не пахнет.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
base64 | beemoto | Общие вопросы Delphi | 0 | 24.04.2010 21:58 |
Нужно написать/исправить функцию на Delphi, Base64 encode | gvm | Фриланс | 2 | 13.04.2010 18:19 |
base64 | Dimarik | Win Api | 0 | 10.04.2010 18:59 |
кодировать в base64 | furstenberg | Общие вопросы Delphi | 13 | 29.08.2008 17:02 |
base64 | BlackOmen | Общие вопросы Delphi | 2 | 02.05.2008 16:30 |