Здравствуйте. Когда я был маленьким, я программировал на паскале. И горя не знал, используя типизированные файлы. Ну, вы знаете, это такие файлы, которые хранят данные определенного типа. Я мог объявить такой файл с помощью File of ... , переместиться на нужную позицию с помощью SEEK и даже, если мне не изменяет память, перезаписать отдельный элемент (структуру, например). Прошло несколько лет. Я учусь на программиста, типизированными файлами не пользовался года два — мне всегда было достаточно лишь сохранения значений в текстовой файл и последовательного считывания их из файла (потока). Таким образом я работал со всеми структурами данных, включая деревья. Но черт меня все-таки дернул и я выбрал (какова же моя ошибка) в качестве курсовой работы Б-дерево. Языком реализации, ради нового опыта, был выбран C#. Проблема, как уже, наверное, многие поняли, заключается в том, что идеологически неправильно это самое б-дерево полностью грузить в память из файла. Нужно грузить его отдельными узлами, иначе пропадает весь смысл. При том, без полной перезаписи файла нужно перезаписывать эти самые узлы (уже существующие в файле)... И вот тут бы пригодился паскалевский типизированный файл. Но заглянув в гугл, я увидел, что там холодно,дурно пахнет, а нехорошие дяденьки маниакальной наружности ходят и бормочат под нос : "сериализация!", "Маршалинг!", "Неуправляемая память!", и другие неприличные слова, за которые мама дала бы мне затрещину, а я хочу назад к теплому , родному и ламповому типизированному файлу, к которому так привык в детстве.
С помощью жутких костылей типа вышеупомянутой сериализации, маршалинга и т.д. я смог записывать в файл структуры и даже находить и читать нужную структуру по ее номеру. Но это настолько вырвиглазно, что я в замешательстве. Подскажите нормальный способ организации такого файла или хотя бы ткните носом, как перезаписать n байт в произвольном месте файла новыми значениями. Спасибо заранее и простите за графоманство.