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

В каком формате лучше хранить историю работы приложения? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализовать простое 2-3 дерево происка http://www.cyberforum.ru/cpp-beginners/thread1491977.html
Помогите пожалуйста реализовать простое 2-3 дерево происка на C++, ни в интернете ни на форуме такой реализации не нашёл. Добавлено через 20 часов 26 минут может кто помоч?
C++ Баг в счётчике сортировки "вставка" (insert) Всем добрый день. У меня есть программа по сортировкам на стадии бета-версии. Суть отсортировать строки исходного массива по возрастанию. И есть одна проблема с сортировкой методом "вставка". Вроде сравнения он считает правильно, но вот перестановки почему то всегда отображаются в виде нуля. Я закомментил часть, где считается вставкой. Если вы мне поможете найти ошибку, я буду очень благодарен.... http://www.cyberforum.ru/cpp-beginners/thread1491959.html
Вывести из файла среднюю оценку каждого ученика C++
Необходима помощь в следующей задаче. Файл содержит оценки учащихся класса в формате: Фамилия, оценки по 10 предметам. Например: Иванов 5 8 6 4 9 7 6 8 9 10 Петров 10 4 9 6 7 8 9 9 9 7 Клюшкин 10 4 9 9 7 5 9 9 9 7 Федорова 10 4 9 7 7 8 9 6 9 7 Сидоров 1 2 3 4 5 6 7 8 9 10. Необходимо вывести на экран среднюю оценку каждого ученика. Заранее благодарен.
C++ Структура "Рейс самолета". Функция удаления
Имеется код, который считывает структурный тип из файла и просто записывает его в файл результатов: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <cstring> #include <iomanip> #include <iostream> #include <fstream>
C++ WinAPI Не запускается exe через CreateProcess http://www.cyberforum.ru/cpp-beginners/thread1491896.html
Здравствуйте! Стоит задача запустить exe файл с параметрами тихой установки, а именно установку opera! Не могу понять почему notepad или тот же cmd запускаеться, а установка оперы нет! А также интересует как вообще запустить с параметрами? Мой код: STARTUPINFO cif; ZeroMemory(&cif, sizeof(STARTUPINFO)); PROCESS_INFORMATION pi; CreateProcess(NULL, "\"c:\\opera.exe\""; , NULL, NULL,...
C++ Где взять визуальные кнопки в С++? Негде не найду нормальную инфу о создание кнопки с действием. Может кто подскажет где мне такую информацию найти? Кнопки ни разу не писал и понятия не имею как это делать. подробнее

Показать сообщение отдельно
hoggy
5225 / 2116 / 403
Регистрация: 15.11.2014
Сообщений: 4,800
Завершенные тесты: 1
03.07.2015, 01:11     В каком формате лучше хранить историю работы приложения?
Цитата Сообщение от klynxe Посмотреть сообщение
То есть сериализаторы используются для компоновки данных
для извлечения данных из объекта.
что с этими данными будет дальше,
сереализацию не интересует.

задача сериализации:
помочь программисту легко и быстро извлекать данные из объектов в какое либо представление
(например - обычный текстовый файл).

или напротив: имя на руках текстовый файл,
на его основе легко и быстро воссоздавать в программе объекты.

пример использования:

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include <algorithm>
#include <sstream>
#include <iostream>
#include <vector>
 
// стримы выполняют запись например, на жесткий диск
#include <boost/iostreams/stream.hpp>
#include <boost/iostreams/stream_buffer.hpp>
#include <boost/iostreams/device/back_inserter.hpp>
 
// архив для формирования текстового представления данных
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
 
// архив для формирования бинарного представления данных
#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp>
 
// на примере данного класса проиллюстрируем
// как сериализаторы могут извлекать данные из объектов
// или напротив, на основании имеющихся данных инициализировать объекты
class gps_position
{
private:
    // --- что бы сериализатор мог дотянуться до приватных данных
    friend class boost::serialization::access;
    
    
    // --- здесь описывается принцип сериализации/десериализации
    template<class Archive>
    void serialize(Archive & ar, const unsigned int version)
    {
        (void)version;
        ar & degrees;   //<-- сначала в архив будет помещено содержимое этого члена
        ar & minutes;   //<-- затем, этого
        ar & seconds;   //<-- затем, этого
    }
 
    int degrees;
    int minutes;
    float seconds;
 
public:
    gps_position(){};
    gps_position(int d, int m, float s) :
        degrees(d), minutes(m), seconds(s)
    {}
 
    template<class T>
    friend std::basic_ostream<T>& 
    operator<<(std::basic_ostream<T>& os, const gps_position& v)
    {
        os << "[degrees = " << v.degrees << ", minutes = " 
            << v.minutes << ", seconds = " << v.seconds << "]";
        return os;
    }
};
 
void DemoTextSerialization()
{
    std::cout << "Demonstration of text serialization" << std::endl;
 
    // создаем текстовый поток ввода-вывода
    std::stringstream stream;
 
    // создаем объект, который хотим сериализовать
    gps_position source(35, 59, 24.567f);
    std::cout << "source = " << source << std::endl;
 
    {
        // создаем текстовый архив (хранилище данных)
        boost::archive::text_oarchive 
            oa(stream);
        
        // сериализуем объект (данные об объекте будут помещены в архив)
        oa << source;
 
        // здесь закончится время жизни архива, 
        // и он в диструкторе отправит все свое содержимое 
        // в поток ввода вывода, 
        // который мы ему указали при создании        
    }
 
    // выводим в консоль содержимое текстового архива
    // если бы мы вместо std::stringstream использовали бы файловый поток вводы-вывода
    // то данные были бы записаны на жесткий диск
    std::cout << "Data was serialized as: \n" 
        << stream.str() << std::endl;
 
    // теперь выполним обратное преобразование: 
    // из текста восоздадим объект
    
    // создаем объект с дефолтным состоянием
    gps_position dest;
    
    // теперь нужно наполнить объект данными из текстового файла
    {
        // создаем архив, указав поток ввода-вывода источника
        boost::archive::text_iarchive 
            ia(stream);
        
        // теперь читаем из архива, перенося данные в объект
        ia >> dest;
    }
 
    // готово! теперь выводим в консоль состояние объекта
    std::cout << "destination = " << dest << std::endl;
}
 
void DemoBinarySerialization()
{
    std::cout << "Demonstration of binary serialization" << std::endl;
 
    typedef std::vector<char> Blob;
    Blob buffer;
 
    boost::iostreams::stream<boost::iostreams::back_insert_device<Blob>> 
        os(buffer);
 
    // create source instance 
    gps_position source(35, 59, 24.567f);
    std::cout << "source = " << source << std::endl;
 
    {
        boost::archive::binary_oarchive 
            oa(os, boost::archive::archive_flags::no_header);
        
        oa << source;
    }
 
    os.flush();
 
    std::cout << "Data was serialized as: " << std::endl;
    std::cout.setf(std::ios::hex, std::ios::basefield);
    std::copy(buffer.begin(), buffer.end(), std::ostream_iterator<unsigned int>(std::cout));
    std::cout.unsetf(std::ios::hex);
    std::cout << std::endl;
 
 
    boost::iostreams::basic_array_source<char> bufSrc(&buffer[0], buffer.size());
    boost::iostreams::stream<decltype(bufSrc)> is(bufSrc); 
 
    gps_position dest;
 
    {
        boost::archive::binary_iarchive 
            ia(is, boost::archive::archive_flags::no_header);
        
        ia >> dest;
    }
 
    std::cout << "destination = " << dest << std::endl;
}
 
int main() 
{
    DemoTextSerialization();
    std::cout << std::endl;
    DemoBinarySerialization();
 
    return 0;
}
 
Текущее время: 09:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru