2

Managed C++. Есть данные: группы данных и в каждой группе целочисленные данные. Например: Завод-> 5 столов 4 стулья 2 шкафа Офис-> 10 столов 8 стульев 3 шкафа

Каким образом лучше всего организовать сохранение этих данных, последующую запись в файл и возможность чтения в будущем в таком же упорядоченном списке? Т.е. допустм, будет список групп (офис, завод) в comboBox и при выборе мы получали данные о кол-ве стульев, шкафов из сохраненного файла.

Я вспомнил в чем у меня была загвоздка, почему я не сразу взял структуры. Данные: офис, завод динамические. Мне неизвестно сколько этих мест будет. Как быть?

1
  • Приведите Ваши структуры данных в C программе. Тогда можно будет конкретно подумать об их записи-чтении.
    – avp
    9 ноя 2011 в 9:35

1 ответ 1

2

Хрестоматийный вариант - создать структуры с соответствующими полями, заполнять их и сохранять в файл как бинарные данные кусками с фиксированным размером, потом считывать.

Пример записи

struct Data {
  char Place [20];
  int Chair;
  int Tables;
};

struct Data Work = {"Завод", 100, 50};
struct Data Office = {"Оффис", 70, 40};

FILE* f = fopen ("database", "wb");
fwrite (&Work, sizeof(struct Data), 1, f);
fwrite (&Office, sizeof(struct Data), 1, f);
fclose (f);

Если же данных много, то лучше организовать базу данных, типа MySQL

6
  • "и сохранять в файл как бинарные данные кусками с фиксированным размером, потом считывать." Можно пример, ссылки, подробнее?
    – Max
    9 ноя 2011 в 16:06
  • Пример записи добавил в свой ответ. Надеюсь, как читать такой файл Вы сами разберетесь.
    – skegg
    9 ноя 2011 в 16:17
  • Спасибо. Т.к. я перешел на ооп недавно, для меня это важно. Я слышал, что можно целые структуры записывать, но не представлял, как это выглядит. В каком виде записываются в файл.
    – Max
    9 ноя 2011 в 17:03
  • Ну, это не ООП. Это в стиле С. Можно записывать с помощью объектов классов ввода-вывода. Но вообще-то, если хотите сделать что-то серьезное, используйте нормальные базы данных.
    – skegg
    9 ноя 2011 в 17:05
  • Тут несерьезное. Тут обучение. И я осознаю, что это не ООП. Просто мое изучение началось с C#, где все гораздо "человечнее", чем в managed c++ на мой взгляд :)
    – Max
    9 ноя 2011 в 18:01

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.