Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.11.29;
Скачать: CL | DM;

Вниз

Вычитка статьи: Работаем с Compound File   Найти похожие ветки 

 
Inovet ©   (2015-03-31 05:20) [40]

// то-же самое делаем с со всеми элементами, которые идут после текущего узла
   // то-же самое делаем со всеми элементами, которые идут после текущего узла


 
Inovet ©   (2015-03-31 05:33) [41]

в 99 процентов убитых
наверное надо
в 99 процентов случаев убитых


 
Inovet ©   (2015-03-31 05:58) [42]

Дочитал. Хорошая статья для ознакомления.


 
Юрий Зотов ©   (2015-03-31 08:02) [43]

// Из-за фрагментации, данные...
Запятая не нужна.

// то-же самое...
Дефис не нужен.


 
Inovet ©   (2015-03-31 08:32) [44]

> [43] Юрий Зотов ©   (31.03.15 08:02)
> // то-же самое...
> Дефис не нужен.

Почему-то любит Розыч ставить этот дефис в этом месте.


 
Rouse_ ©   (2015-03-31 10:31) [45]

Поправил


 
Владислав ©   (2015-03-31 11:12) [46]

Первая глава. Не все подряд, а то, что сразу понятно было.

«С составными файлами я работаю давно, больше 15 лет. За все время работы у меня накопилось достаточно информации о плюсах и о минусах составных файлов.»

«С одной стороны они являются действительно очень удобным хранилищем информации, позволяющим менять данные на лету, с другой стороны это удобство частично нивелируется скоростью доступа к данным.»

«А вот с третьим флагом STGM_SHARE_EXCLUSIVE все гораздо хитрее. Его наличие требуется всегда и везде, кроме открытия файла в режиме "только чтение", о чем говорится во второй главе.»

«Таким образом, одновременное открытие составного файла на запись более одного раза запрещено.»

«Если все проверки прошли успешно и код возврата StgCreateDocfile равен S_OK, то в четвертом параметре данной функции нам вернется интерфейс IStorage, указывающий на корневой элемент составного файла, с которым и будет происходить вся дальнейшая работа.»

«К примеру, создать в корне новый файл (все же у нас файловая система) и записать в него некий блок данных.»

«Это, конечно, не принципиальный момент, и можно было воспользоваться вызовом функции Write интерфейса ISequentialStream, наследником которого является IStream, но зачем нам лишний велосипед?»

Не является ли здесь лишним велосипедом TOleStream? Если является, то может быть так:

«Это, конечно, не принципиальный момент, и можно было воспользоваться вызовом функции Write интерфейса ISequentialStream, наследником которого является IStream, но работать с классом TOleStream  проще.»

«Вызовем реализованную нами ранее функцию:»

«Впрочем» было бы уместно, если бы мы писали о чем-то таком: «Впрочем, мы не будем пользоваться нашей функцией».

«Здесь есть один нюанс.» Потому что говорится об ограничении длины имени файла, и больше не о чем, поэтому дальше:

«Имена файлов и папок внутри составного файла не могут превышать длину в 31» и далее по тексту.

«Вернемся к нашим баранам, создадим в корне папку.» «Впрочем», здесь тоже не уместно употреблять.

Тут можно и без скобок:
«Для этого первым параметров укажем не Root, который ссылается на корень, а только что созданный Forder.»

«Чтобы гарантировать сохранение данных нужно выполнить следующий код:»

«После выполнения этого кода все данные будут гарантированно сохранены в файл на диске.»

«Кстати, по поводу закрытия файла.
Это делается банальным обниливанием рута, после чего при вызове @IntfClear для интерфейса в переменной Root произойдет разрушение всех остальных интерфейсов в иерархическом порядке.»

«Что у нас еще осталось?»


 
Rouse_ ©   (2015-03-31 11:28) [47]

Да, так наверное получше будет, щас поправлю.


 
Inovet ©   (2015-03-31 14:21) [48]

> [41] Inovet ©   (31.03.15 05:33)
> в 99 процентов случаев убитых

> в 99 процентах случаев убитых


 
Rouse_ ©   (2015-03-31 14:27) [49]

Угу, фикс.


 
Владислав ©   (2015-03-31 15:37) [50]

Еще немного.

Некоторые авторские жаргонизмы и обороты не трогаю. Этакий стиль беседы. По моему мнению, для статьи сгодится.

«Как бы вы выполнили поиск файлов в указанной папке на диске?
Естественно, рекурсивным обходом каталога, используя FindFirstFile.»

«В свое время мной был разработан небольшой модуль (тысяча строчек с комментариями), в котором реализовано несколько классов, учитывающих все нюансы работы с составными файлами и предоставляющих более удобный механизм работы.»

«В нем есть несколько недочетов. Дело в том, что я забросил его разработку очень давно, поэтому на юникодных версиях Delphi он будет выдавать ворнинги связанные с работой со строками.»

«Данный модуль вы можете использовать по своему усмотрению.» Или «собственному», или «своему».

«Единственные ограничения: » их там два. Так что или «Два ограничения:», или как-то так «Данный модуль вы можете использовать по своему усмотрению со следующими оговорками.»

«Я данный модуль уже не сопровождаю (он для меня устарел), поэтому просьбы о его доработке я буду отклонять сразу.»

«Итак, из данного модуля нас интересует класс TFWStorage, при помощи которого ведется работа с составным файлом, и класс TFWStorageCursor, который является оберткой над IStorage.»

«Для начала перечислю методы этих классов, а потом дам пример работы с ними.»

«В массиве TFWStorageEnum, который возвращает метод Enumerate, не нужно освобождать память, выделенную под pacsName, это уже сделано, и вы работаете с копией данных, которые хранятся в памяти, выделенной родным менеджером памяти.»

«Здесь я сделаю небольшое отступление и расскажу вам небольшую историю из собственной практики.»


 
Rouse_ ©   (2015-03-31 15:57) [51]

Угу, обновил.


 
Jeer ©   (2015-03-31 17:03) [52]

https://ru.wikipedia.org/wiki/NoSQL


 
Rouse_ ©   (2015-03-31 17:17) [53]

Ну в принципе да, Серег - это документо-ориентированная субд, как одно из подмножеств NoSQL решений :)


 
Piter ©   (2015-03-31 17:23) [54]

Удалено модератором


 
Rouse_ ©   (2015-03-31 18:04) [55]

Миш, ну я ж беларус, Руская мова не моцна ведаю :)
Так что приходится постоянно попрошайничать :)

Ладно, раз больше предложений больше нет - пошел релизить (как-же я не люблю переверстывать все под Хабр...)


 
Rouse_ ©   (2015-03-31 18:15) [56]

Релиз: http://alexander-bagel.blogspot.ru/2015/03/compound-file.html
На хабр дам линк чуть попозже.


 
Piter ©   (2015-03-31 18:43) [57]

Удалено модератором


 
Rouse_ ©   (2015-03-31 19:29) [58]

Поста на хабре: http://habrahabr.ru/post/254541/
ФФух - мишн комплитед :)


 
Rouse_ ©   (2015-03-31 20:43) [59]

Да, кстати, СПАСИБО за помощь в вычитке - сами понимаете, я тот еще знаток языка, мне проще программировать :)



Страницы: 1 2 вся ветка

Текущий архив: 2015.11.29;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.008 c
15-1426787074
Rouse_
2015-03-19 20:44
2015.11.29
Просто опрос, мне для статистики для статьи


15-1427461942
Дмитрий Белькевич
2015-03-27 16:12
2015.11.29
Автоинкремент билда при сборке из командной строки.


2-1402491436
Sakipiel
2014-06-11 16:57
2015.11.29
Фильтр ClientDataset не работает


15-1427819941
Кто б сомневался
2015-03-31 19:39
2015.11.29
Фрэймы с одинаковым Owner


2-1402536512
Sakipiel
2014-06-12 05:28
2015.11.29
программное создание ClientDataSet что еще я упустил?