Хотелось бы найти пример организации и работы с бинарным файлом.
Т. е. что-то типа "кустарной" мини-базы данных в которую помещаются разнородные записи
а затем удаляются либо редактируются.
Первый вопрос - организация.
Сначала - заголовок, он видимо разбит на части:
1. строка с какой-то информацией типа "My Lamer's DB v 1.0.0"
2. 8 байт для long int - это будет счётчик количества записей
3. 8 байт для long int - это будет счётчик уникального значения идентификатора последней записи,
т.е. что-то типа автоинкремента, считали, добавили 1 получили id для новой записи.
(не уверен нужен ли пункт 2, но видимо для удобства можно оставить, т.к. счётчик из пункта 3 будет всегда только увеличиваться и после удаления хотя бы одной записи не будет соответствовать кол-ву записей, а перераспределять все значения идентификаторов всех записей при каждом удалении, мне кажется не совсем оптимально?)
Ну а после заголовка(там кстати можно ещё первый пункт убрать, а можно ещё несколько добавить?)
будут идти сами записи, что-то типа:
1. 4 байта для int - это общая длина записи
2. 8 байт для long int - это идентификатор записи
3. 4 байта для int - это длина первого текстового поля
4. кол-во байт из пункта 3 - это само текстовое поле т.е. данные
-//-
(пункты 3 и 4 повторяются необходимое число раз)
Второй вопрос - реализация.
Во-первых чего лучше использовать?
1. fopen()+fread()+fwrite()+fseek()...
2. fstream + << + >> или fstream.read()+fstream.write()
3. функции WinAPI
4. какие-то есть готовые уже наработки конечно же, хотя хотелось бы самому...
коротко о себе: сам то я полный ламер в C++ опыта почти нет никакого серьёзного, толком ничего ещё не делал стоящего, но очень хочется
Прошу всех, кто сталкивался или имеет представление... в общем указать путь истинный...