|
Алгоритмы файловых операций
Всем привет - у меня вопрос, который может перерости в обсуждение.
Сразу скажу, что не хотелось бы привязывать данную тему к конкретному языку, т.к. принципы работы с файлами ИМХО схожи.
Имеется: поток, который может создавать/открывать, записывать/читать из/в файл. Работаем в Винде 32 битной, под файловой
системой NTFS. ASM приветствуется, если можно как-то его применить в контексте использования с языками высокого уровня.
Безусловно просто реализовать: запись в конец файла, чтение, замена информации на другую в рамках фиксированного количества байт.
Сложное: удаление из файла фиксированного числа байт (для больших файлов в частности), вставка в файл, замена с увеличением или уменьшением размера.
Возьмем для этого такой пример файла, размером 24 байта:
Hex код:
CE 02 02 02 D1 F2 F0 EE F7 Ea E0 00 00 00 00 32 34 38 33 32 31 38 39 00
ASCII код:
O...Строчка....24832189.
А теперь представим, что файл весит мегабайт эдак 100-500 и надо удалить из файла, допустим первые 4 байта, заменить строку "Строчка"
на строку "Длинная строчка", ну вставить куда-нить че-нить и тд.
|