Любые вопросы от ПРОФИ к СУПЕРПРОФИ - 1. - страница 33

 

Спасбо! Это всё, конечно, читал много раз. Возможно, увеличения размера уже открытого отображения не предусмотрено. Всё самому надо делать.

1. Переложить данные по частям в новое временное отображение.

2. Закрыть старое.

3. Открыть новое с большим размером.

4. Переложить туда всё по частям из временного отображения.

Жуть. Долго всё.

 

там по ссылке написано, что данные при открытии отображения одного и того же но в разных размера все равно остаются когеренты, то есть на самом деле все хранится в одном месте. и просто проецируется.

Это я к тому, что копировать возможно не понадобится

 

Одно и тоже это с одним именем? Если так, то открывается то же отображение, но с новым дескриптором. Именно так делал. Размер не увеличивается.

Надо закрыть все дескрипторы и только тогда можно заново открыть его с новым размером.

Передать данные из одного отображения в другое можно только через память текущего процесса.

 

Придумал, как сделать!

Надо всегда открывать файловое отображение временного файла. С минимальным размером в 1 байт. При пероткрытии файлового отображения всё само сохраниться в файле. Потом опять открыть файловое отображение этого файла с новым размером.

 
Надо будет попробовать.
 
FAQ:

http://www.delphisources.ru/pages/faq/base/filemapping.html


dwMaximumSizeHigh - старший разряд 64-битного значения размера выделяемого объема памяти для совместного доступа (более 4 Gbt)- нам столько не надо :) - присвоим этому аргументу значение 0.

dwMaximumSizeLow - Спасибо славным жителям Королевства, указавшим на ошибку в описании этого аргумента! В особенности г-ну Uno, который замечательно все объяснил! (см. комментарий к статье) - младший разряд 64-битного значения размера выделяемого объема памяти для совместного доступа - если размер dwMaximumSizeHigh равен 0, то размер этого аргумента должен быть НЕ МЕНЬШЕ РАЗМЕРА ДАННЫХ помещаемых в файл подкачки. При этом надо учитывать то, что размер "страницы" для Intel составляет 4 KBt, т.е. указав этот размер 1 байт мы получим "карман для совместного доступа" :) в 4 KBt, если указать 4001, то в объект файлового отображения можно будет поместить уже до 8Kbt данных и т.д.

За это напоминание отдельное спасибо. Помогло решить другую проблему.

Переделал защиту памяти в библиотеке для маппинга. Про это забыл. Постоянно выскакивали мои предупреждения о нехватке памяти. Хотя, у меня она автоматически выделяется.

Вот ночью приснилось :-)

 
имеем довольно длинного экспа (~3000) причем весь код в одном блоке (без инклюдов и либок) в какой то момент времени пропала вкладка с внешними переменными. Есть варианты ?
 
#property library затесался где то в коде?
 
уже нашел, ...ать его :)
 
mishanya7777777:
скажите пожалуста почему на дэмо счёте отсутствует немедленное исполнение?
Хватит уже спамить. Даже ветку создали, а все равно продолжаете.
Причина обращения: