Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Создание своего формата и хранение данных в нем - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объявление переменной в цикле http://www.cyberforum.ru/cpp-beginners/thread1225089.html
for (int i=0; i!=5; ++i) { int tmp; std::cout << &tmp << std::endl; } Будет ли переменная tmp объявляться при каждой итерации или компилятор оптимизирует такое объявление? Одинаковый...
C++ Сортировка по спирали Прошу только проверить на корректность написанный код. Условие: Из матрицы А сформировать матрицу В, отсортировав по возрастанию все элементы матрицы А и располагая их в матрице В по спирали,... http://www.cyberforum.ru/cpp-beginners/thread1225001.html
C++ Обработка исключений (Exception)
Всем приветю У меня возникла такая ситуация: в main создаю локальную переменную типа long, затем прошу пользователя задать эту переменную и потом эту переменную передаю в объект с помощью set...
C++ Найти счёт при оптимальной стратегии двух игроков
взялся тут решать задачку с олимпиады, и честно говоря уже час потратил за зря...Никак не могу продумать сам алгоритм игры игроков... Игроки совершают ходы по очереди. На каждом ходу игрок...
C++ Печать из консоли на принтер http://www.cyberforum.ru/cpp-beginners/thread1224975.html
Здравствуйте столкнулся с такой проблемой как печать с консольного окна результата программы. Хотел сделать следующее сам код программы напечатать допустим на одной стороне листа, а то что в итоге...
C++ Записать в третий файл через один содержимое первого файла и второго Даны 2 файла содержащие числа , записать в 3 файл через один содержимое первого файла и второго файла и сумму первого и второго подробнее

Показать сообщение отдельно
Igor Fender
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167
10.07.2014, 22:32  [ТС]
uglyPinokkio, как вы говорили исправил некоторые ошибки и добавил base64 кодирование/декодирование. Надеюсь теперь это не будет простым копирование файла?
Хочу сделать что-то типа мини БД. Упаковал файлы exe и другие в один файлик (правда с большим весом) и готово.
А потом также распаковал файлы
Вот код:
(файлы base64.h и base64.cpp взял с этой страницы http://www.adp-gmbh.ch/cpp/common/base64.html описание
нашел тут http://2lx.ru/2011/10/base64-v-c/)

C++
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <Windows.h>
#include <fstream>
#include "base64.h"
 
 
class MultiStorageCore
{
public:
 
    // Записывает файл в бд
    int zipFile (char* mfsName, char* fileName)
    {
        std::ofstream mfs  (mfsName,  std::ios::ate);
        std::ifstream file (fileName, std::ios::binary);
 
        if (!mfs || !file) return 0;
 
        file.seekg(0, file.end);
        int size = file.tellg();
        file.seekg(0, file.beg);
        char* buff = new char[size];
 
        file.read  (buff, size);
        std::string base64;
        base64 = base64_encode((const unsigned char*)buff, size);
        mfs<<base64;
 
        mfs .close();
        file.close();
        delete[] buff;
        return 1;
    }
 
    //вытаскивает файл из бд и записывает байты в новый файл
    int unzipFile (char* mfsName, char* newFileName)
    {
        std::ifstream mfs  (mfsName);
        std::ofstream file (newFileName, std::ios::binary);
 
        if (!mfs || !file) return 0;
 
        mfs.seekg(0, mfs.end);
        int size = mfs.tellg();
        mfs.seekg(0, mfs.beg);
 
        std::string base64;
        mfs>>base64;
        base64 = base64_decode(base64);
        file<<base64;
 
        mfs .close();
        file.close();
        return 1;
    }
};
 
 
 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR     lpCmdLine, int       nCmdShow)
{
    MultiStorageCore test;
    test.zipFile  ("test.mfs", "test.exe");
    test.unzipFile("test.mfs", "new.exe");
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru