0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 96

Кодирование файлов в текст для последующей передачи, реально ли это на PureBasic?

15.10.2018, 19:09. Показов 2780. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
кодирование файлов в текст для последующей передачи, реально ли это на пуре?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2018, 19:09
Ответы с готовыми решениями:

Кодирование строки для передачи в POST/GET
Доброго времени суток. Обнаружил неприятную проблему, собираю, значит POST-запрос: QString phone = "+7 (123) ..."; ...

Кодирование последовательности байт для передачи без повторений
Всем привет! Столкнулся вот с задачей, несложной на первый взгляд, но пока никак не могу решить. Есть передатчик и есть...

DLC для Андроид- реально ли это?
Здравствуйте, хочу написать простенький сборник миниигр на Android с помощью RAD Studio. Суть: первое окно- выбор игры (пасьянс/...

6
Эксперт по электронике
6228 / 2919 / 314
Регистрация: 28.10.2011
Сообщений: 11,313
Записей в блоге: 6
15.10.2018, 23:22
При такой постановке задачи - Base64EncoderBuffer и Base64DecoderBuffer.
Но нужно именно это или что-то другое, сложно сказать по вопросу.
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 96
16.10.2018, 12:01  [ТС]
Да спасибо, это я нашел но я так понял он только строки, а мне нужно файлы или я ошибаюсь?
0
Эксперт по электронике
6228 / 2919 / 314
Регистрация: 28.10.2011
Сообщений: 11,313
Записей в блоге: 6
16.10.2018, 13:12
Кодировать можно любые данные. В описании функции Base64DecoderBuffer есть пример работы с данными.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DataSection
  Test:
  Data.a $00, $01, $02, $03, $04, $05, $06, $07
  Data.a $08, $09, $0A, $0B, $0C, $0D, $0E, $0F
  TestEnd:
EndDataSection
 
Size = (?TestEnd - ?Test) * 1.35
If Size < 64
  Size = 64
EndIf
 
*EncodeBuffer = AllocateMemory(Size)
Size = Base64EncoderBuffer(?Test, ?TestEnd - ?Test, *EncodeBuffer, MemorySize(*EncodeBuffer))
Encoded$ = PeekS(*EncodeBuffer, Size, #PB_Ascii)
Debug Encoded$
 
*DecodeBuffer = AllocateMemory(Size)
Size = PokeS(*EncodeBuffer, Encoded$, StringByteLength(Encoded$, #PB_Ascii), #PB_Ascii|#PB_String_NoZero)
Size = Base64DecoderBuffer(*EncodeBuffer, Size, *DecodeBuffer, MemorySize(*DecodeBuffer))
ShowMemoryViewer(*DecodeBuffer, Size)
0
0 / 0 / 0
Регистрация: 11.12.2017
Сообщений: 96
16.10.2018, 21:37  [ТС]
да точно ) спасибо

Добавлено через 4 часа 34 минуты
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ReadFile(0,"test.txt")
length = Lof(0)                            
*MemoryID = AllocateMemory(length)
bytes = ReadData(0, *MemoryID, length)
CloseFile(0)
  Size1 = bytes * 1.5
  If Size1 < 64
    Size1 = 64
  EndIf
  
  *EncodeBuffer = AllocateMemory(Size1*1.5)
  Size3 = Base64EncoderBuffer(*MemoryID, Size1, *EncodeBuffer, MemorySize(*EncodeBuffer))
  Encoded$ = PeekS(*EncodeBuffer, Size3, #PB_UTF8)
  Debug Encoded$
  
  *DecodeBuffer = AllocateMemory(Size3)
  Size = PokeS(*EncodeBuffer, Encoded$, StringByteLength(Encoded$, #PB_UTF8), #PB_UTF8|#PB_String_NoZero)
  Size = Base64DecoderBuffer(*EncodeBuffer, Size, *DecodeBuffer, MemorySize(*DecodeBuffer))
  ShowMemoryViewer(*DecodeBuffer, Size)
фаил кодируется и вроде как то декодируется а как его обратно в фаил превратить?
0
Эксперт по электронике
6228 / 2919 / 314
Регистрация: 28.10.2011
Сообщений: 11,313
Записей в блоге: 6
17.10.2018, 23:20
Цитата Сообщение от error_systems Посмотреть сообщение
а как его обратно в фаил превратить
CreateFile, WriteData, CloseFile. https://www.purebasic.com/docu... index.html
0
0 / 0 / 0
Регистрация: 17.10.2021
Сообщений: 57
24.11.2023, 19:57
Всякие способы кодирования, увеличивают размер файла.
Для себя я нашел идеальный вариант.
В начале файл сжимаем, для уменьшения размера, а после "шифруем" сдвигом символов. В итоге файл и сжат и закодирован. Размер файла уменьшен за счёт сжатия, а кодируется файл один в один.
Так удобно хранить файлы в секции Data, что бы меньше орали дотошные AV и размер программы был меньше.
Причем рас кодировку можно делать, не привлекая дополнительные буферы, прямо в секции Data, прямо в тот же кусок.
Для разархивации конечно же нужен отдельный буфер, но никто не заставляет файл сжимать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2023, 19:57
Помогаю со студенческими работами здесь

PureBasic: плеер swf-файлов
Установил Пюре_v5.3 Плеер из папки с примерами ...\Examples\Sources - Advanced\MoviePlayer\MoviePlayer.pb прекрасно работает со всеми...

Приложение для передачи файлов по сети
Доброго времени суток всем!!! Я тут новенький да и в программировании тоже. Меня собственно говоря интересует, как написать приложение...

Разработать библиотеку процедур для приёма-передачи данных по сети на основе протокола UDP и текст для её проверки
Здравствуйте. Вот задание. Разработать библиотеку процедур для приёма-передачи данных по сети на основе протокола UDP и текст для её...

Программа для передачи файлов по локальной сети
Подскажите как реализовать программу передачи файлов по локальной сети ( на несколько компьютеров ).

Приложение для передачи файлов + локальный чат
Есть приложение для отправки и получения файлов по локальной сети. На сокетах. Нашёл готовое и думал перебрать под себя. Полностью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач: . . .
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru