1

Тема: Идентификатор (ID) документа

Здравствуйте.

Кто пробовал организовать идентификацию документов? В частности, разных версий одного документа. Пишу код для самопроверки: тот ли это документ, или его уже подправили. Что-то типа контрольной суммы, но попроще и побыстрее. Никакого кода, внедряющего в документ всякие ID, быть не должно. Только код проверки. Word и сам автосохраняет в документе кучу всего.

Пока, думаю привязаться к BuiltInDocumentProperties, к какой-либо комбинации свойств wdPropertyBytes, wdPropertyTimeLastSaved, wdPropertyRevision. Может есть другие идеи?

Макросы под заказ и готовый пакет - mtdmacro.ru

2

Re: Идентификатор (ID) документа

Вождь пишет:

Пишу код для самопроверки: тот ли это документ, или его уже подправили. Что-то типа контрольной суммы, но попроще и побыстрее.

Вот пример подпрограммы, вычисляющей контрольную сумму (четыре 16-ричных символа). Источник - внешняя ссылка.
Использовать можно так: при закрытии файла (через событие Document_Close) вызывать подпрограмму подсчета контрольной суммы и результат записывать в подходящее свойство документа (одно из вами перечисленных), затем сохранять документ. При открытии документа (Document_Open) можно снова вычислять контрольную сумму и сравнивать с тем, что было сохранено ранее: если есть расхождение - то файл был изменен (и реагировать, как вам нужно, напр., сообщать об этом).  Разумеется, VBA-код закрытия и открытия должен срабатывать только у вас.
При желании можно найти аналогичный алгоритм и для 32-х, 64-х и т.д. вычисления контрольной суммы.
Вот VBA-код макроса (CRC16) и пример подпрограммы его использования (это упрощенный подход, правильнее, конечно, было бы обойти текст всех Story; кроме того, очевидно, что смена любой картинки в документе не отразится на его контрольной сумме) :

Sub test_crc16()
Dim scrc As String
scrc = CRC16(ActiveDocument.Range.Text)
End Sub

Function CRC16(txt As String)
Dim x As Long
Dim mask, i, j, nC, Crc As Integer
Dim c As String
Crc = &HFFFF
For nC = 1 To Len(txt)
    j = Val("&H" + Mid(txt, nC, 2))
    Crc = Crc Xor j
    For j = 1 To 8
        mask = 0
        If Crc / 2 <> Int(Crc / 2) Then mask = &HA001
        Crc = Int(Crc / 2) And &H7FFF: Crc = Crc Xor mask
    Next j
Next nC
CRC16 = Hex$(Crc)
End Function

3

Re: Идентификатор (ID) документа

Гм, странный подход. Не додумался бы считать CRC внутренностей документа smile Проще же CRC файла посчитать. Этот метод и медленный, и охватывает документ лишь частично.

Как я писал - главное скорость. Она должна быть почти нулевая. Не заметная глазу. Самопроверка будет идти при открытии документа. Планирую внедрить этот код в надстройку, чтобы сбрасывать ее опции. Как бы проверка версии проекта. Только за версией надо следить и где-то ее прописывать. А так, если правил документ (макросы, текст, переменные...), то этот код засечет изменения и сбросит настройки. Такая защита от забывчивости.

Макросы под заказ и готовый пакет - mtdmacro.ru

4

Re: Идентификатор (ID) документа

Вождь пишет:

Как я писал - главное скорость. Она должна быть почти нулевая. Не заметная глазу.

Можно найти в Интернете много утилит командной строки для снятия контрольной суммы файла, и они работают достаточно быстро. Напр., утилита HashMyFiles (внешняя ссылка). Такую утилиту можно вызывать из VBA-кода как утилиту командной строки с записью результата в файл с последующим чтением результата. А общий принцип применения - тот же )).

5

Re: Идентификатор (ID) документа

yshindin пишет:

...Можно найти в Интернете много утилит...

Можно, но зачем, если сам пишешь код smile

Надеялся найти какую-то встроенную опцию / параметр Word. Что-то вроде случайных чисел, что Word генерирует, когда активна опция Application.Options.StoreRSIDOnSave. Но все это можно очистить, сбросить, отключить.

Макросы под заказ и готовый пакет - mtdmacro.ru

6

Re: Идентификатор (ID) документа

Схемы, по которым действуют нечестные маклеры, достаточно разнообразны, и их количество растет с каждым днем.  Тем более, когда ситуация с местами в гостиницах в Москве бывает напряженной, посуточная аренда квартир является выходом из ситуации.  Ищем квартиросъёмщика: Доверьте это занятие риэлтеру.  Помимо этого, вовсе не будет лишним описать досконально, как будут осуществляться расчеты, как будет данная недвижимость передаваться и так далее.  Если вы ищите через знакомых, то, возможно, все будет намного легче, так как получить рекомендации от знакомых будет проще и быстрее.  Ещё одним фактором, влияющим на стоимость жилья, является тип дома.  Совет После заключения договора никогда не оставляйте в посредническом агентстве оригиналы документов.  Ни в коем случае не стоит подписывать договор, если доверенности не окажется В договоре об аренде и в доверенности в обязательном порядке указывают сведения об агентстве недвижимости: ф.и.о.  Хорошая хозяйка квартиры с пониманием отнеслась к жалобам молодой женщины.  Возможно или нет погасить ипотеку досрочно так же определяет банк.  Ещё одним фактором, влияющим на стоимость жилья, является тип дома.  Если же ваше материальное положение не позволяет приобрести такое жильё, в таком случае имеет смысл рассмотреть варианты квартир в пригороде – разница в ценах будет существенной.  Квартиры, сдаваемые на сутки, оборудованы всем нужным и необходимым для комфортабельного проживания во время отпуска, деловой поездки, командировки: удобные кровати, диваны кресла, телевизоры, холодильники, печи-свч, музыкальные центры.  Стоит также отметить, что многие банки сейчас осуществляют свои ипотечные программы, сотрудничая с риэлторами, которые, в свою очередь, располагают полной информацией о требованиях определённого банка. 

Сдать квартиру в Самаре 
Снять квартиру Самара 
Аренда в Самаре

7

Re: Идентификатор (ID) документа

Если квартира будет сдаваться обустроенная, нужно хорошо подумать, стоит ли оставлять в квартире дорогую бытовую технику, делать дорогой ремонт или обставить все проще.  Но подобных объявлений о сдаче квартир весьма не много и они тонут в массе информации от посредников.  Сегодня не существует стандартной единой формы договора аренды квартиры, поэтому в каждом агентстве договор составляется в собственной редакции.  Обязательно проверяете правоустанавливающие документы на снимаемую квартиру у хозяев жилья, это поможет избежать многих проблем.  У некоторых понятие «сделать ремонт» подразумевает лишь замену сантехники, ковриков, вешалки в прихожей.  Чтобы обезопасить себя от неожиданных налоговых проверок, лучше сделку проводить официально.  Цена за съем квартир в Москве, в т.н.  Здесь будет необходимо проверить, правда ли это и прийти в не назначенное время с проверкой.  Договор.  Это первый вопрос, с которым вам необходимо определиться.  Если вдруг сам продавец недвижимости нарушит заключенное о задатке соглашение, то он будет обязан покупателю вернуть сумму уже в двойном размере, а также возместить понесенные убытки.  Снять, пожить и почувствовать дух того прошедшего времени, поностальгировать и посмотреть в то окно, как когда-то смотрел тот великий, кого с нами давно уже нет, а его труды и место где он жил, остались… Обращайтесь в агентства, проверенные временем и имеющие положительную репутацию.  При сдаче пустой квартиры, вы в праве рассчитывать на цену близкую к минимальной.  Как правило, в «шапке» пишутся данные двух сторон договора. 

Аренда в Самаре 
Снять квартиру Самара 
Аренда квартир в Самаре

8

Re: Идентификатор (ID) документа

монтаж системы отопления с газовым котлом отопление в коттедже монтаж канализации люберцы оформить заказ инженерные системы под ключ монтаж котлов отопления в пересвете отопление высоковск обслуживание инженерных систем в озёрах монтаж и замена радиаторов отопления в электростали холодное и горячее водоснабжение зданий отопление коттеджа газом монтаж котлов bosch получить консультацию специалистов монтаж котла батареи и теплые полы отопление пушкино установка котельных в реутове монтаж и замена радиаторов отопления в щёлково

Проектирование и монтаж инженерных систем http://otoplenie-elisa.ru

9

Re: Идентификатор (ID) документа

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

Проектирование и монтаж инженерных систем http://otoplenie-elisa.ru