|
12 / 11 / 2
Регистрация: 03.04.2016
Сообщений: 502
|
|
Запись данных перед началом файла25.08.2020, 23:09. Показов 1438. Ответов 22
Метки нет (Все метки)
Всем привет!
Возникла такая проблемка, может кто знает оптимальное решение. Допустим надо дописать 2 байта в конец файла, тут все просто ставим SetFilePointer на конец и далее WriteFile. Но как мне дописать два байта в начало файла не затирая то что в нем уже есть. Проблема в том что файлы большие. На данный момент я копирую файл целиком в буфер, затем пишу в него два байта, а потом снова файл из буфера. В больших файлах, постоянно происходит отказ выделения памяти. Если создать временный файл и копировать в него куски это долго. Может есть простое решение??
0
|
|
| 25.08.2020, 23:09 | |
|
Ответы с готовыми решениями:
22
Основные задачи, перед началом разработки игры VS 2012 c++ Перед началом создания игры Евент перед началом инициализации контрола |
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
|
| 26.08.2020, 08:35 | |
|
По-моему, два байта в начало не добавить без перезаписи всего файла.
Весь диск разбит на некоторое количество блоков-кластеров. Каждый кластер имеет свой уникальный номер, который однозначно идентифицирует его положение на диске. Место на дисках под файл задаётся цепочкой таких кластеров, что-то вроде списка. Теоретически, можно было бы изменить цепочку кластеров добавив один в начало, но это далеко не два байта. Да и сделать подобное, наверное, не так просто. Нужны какие-нибудь низкоуровневые функции по работе с файловой системой, я таких не знаю. Было бы логичным заранее предусмотреть в файле возможность расширения заголовка, оставив в начале некоторое количество резервных байт. Не обязательно прямо в нужном месте, но скажем в пределах нескольких первых килобайт. Тогда можно было бы переписать только эти первые килобайты.
0
|
|
|
2689 / 1346 / 485
Регистрация: 08.11.2016
Сообщений: 3,734
|
|
| 26.08.2020, 09:28 | |
|
Решение дано: пользуйтесь file mapping. Если черт Вас дернет искать другое решение скажу сразу: овчина выделки не стоит, поскольку любой низкоуровневый подход будет зависеть от файловой системы и неизбежно будет порождать дополнительную фрагментацию файлов что явно не ускорит дальнейшую работу с этими файлами, а малейший косяк может порушить файловую систему начиная со структуры каталогов и заканчивая логической структурой хранилища.
0
|
|
|
|
|
| 26.08.2020, 16:13 | |
|
Да, это половинки QWORD.
Только не длительность, а количество итераций. Узким местом будет работа с ФС, так что в данном случае вообще не критично. Вы так и не расписали куда и как требуется итоговой результат. Если он куда-то передаётся через какой-нибудь поток - то вообще не надо менять исходный файл. Просто отправлять модифицированное.
0
|
|
| 26.08.2020, 16:13 | |
|
Что почитать перед началом изучения языка Как убрать задержку перед началом повтора? Задержка перед началом автоповтора набора символа клавиатуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|