Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2015.11.29;
Скачать: [xml.tar.bz2];

Вниз

Вычитка статьи: Работаем с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.004 c
3-1305705190
Panky
2011-05-18 11:53
2015.11.29
Работа с таблицами


15-1428244463
Pavelnk
2015-04-05 17:34
2015.11.29
Учебник Symphony


15-1427898124
Dimka Maslov
2015-04-01 17:22
2015.11.29
А вот почему?


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


15-1427439353
KSergey
2015-03-27 09:55
2015.11.29
Неожиданный синтаксис Си





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский