LibreOffice-3.3.1: исправить...

Автор ape, 13 февраля 2011, 13:01

0 Пользователи и 1 гость просматривают эту тему.

Рыбка Рио

В History Master, в диалоге, есть кнопка "Apply changes". Кажется, перезапуск офиса не нужен, это моя ошибка, нужно просто нажать на эту кнопку, и файл xcu обновится.
ubuntu 12.04 + LibO3.6.0

ape

#31
Цитата: Клио от  7 апреля 2011, 10:29
У меня по крайней мере файл registrymodifications.xcu уменьшается в размере (нужно перезапустить офис чтобы файл обновился).
ИМХО: это ЛОГ работы (возможно, изменений ряда параметров во время работы), поэтому он и перезаписывается. Одновременно этот ЛОГ используется при запуске ЛиО, пункт за пунктом: посмотрите - <item ... </item><item>... - один за другим, без переноса строк, но в строгой последовательности, как по "секциям". Причём, если "заавостите" ЛибО по экспорту *.html в *.odt (cвязка WEB-WRITER), то, прочитав registrymodifications.xcu до запуска soffice.exe, найдёте ссылку (до Истории) на временный файл в /Temp. Файл, скорее всего, будет иметь расширение HTML{HTM}. ИМХО - он "ответит" за восстановление при запуске soffice.exe и благополучно "почит в бозе" после успешного восстановления. Но после этого "сбойный" файл "влипнет в Историю с registrymodifications.xcu".   :D

ape

#32
А. Файл registrymodifications.xcu "до" и "после" вылета soffice.exe
1. Временные файлы: указан путь к папке, не файлу.
"ДО" - В папке 3 временных файла: 1 - пустой; 2 - относятся к РК.oxt;
Цитировать<item oor:path="/org.openoffice.Office.Common/Internal"><prop oor:name="CurrentTempURL" oor:op="fuse"><value>file:///C:/WINDOWS/Temp/svann.tmp</value></prop></item>
"ПОСЛЕ" - папки "svann.tmp" нет.
Цитировать<item oor:path="/org.openoffice.Office.Common/Internal"><prop oor:name="CurrentTempURL" oor:op="fuse"><value></value></prop></item>
2. История - увеличилась, дописались восстановленные HTM-файлы.
3. Восстановление - "до"
Цитировать<item oor:path="/org.openoffice.Office.Recovery/RecoveryInfo"><prop oor:name="Crashed" oor:op="fuse"><value>true</value></prop></item><item oor:path="/org.openoffice.Office.Recovery/RecoveryList"><node oor:name="recovery_item_1" oor:op="replace"><prop oor:name="DocumentState" oor:op="fuse"><value>0</value></prop><prop oor:name="Filter" oor:op="fuse"><value>HTML (StarWriter)</value></prop><prop oor:name="Module" oor:op="fuse"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="OriginalURL" oor:op="fuse"><value>file:///C:/Settings/Administrator/Desktop/%D0%B3%D0%B4%D0%B5_%D1%80%D0%B8%D1%81%D1%83%D0%BD%D0%BA%D0%B8.html</value></prop><prop oor:name="TempURL" oor:op="fuse"><value></value></prop><prop oor:name="TemplateURL" oor:op="fuse"><value></value></prop><prop oor:name="Title" oor:op="fuse"><value>где_рисунки.html</value></prop><prop oor:name="ViewNames" oor:op="fuse"><value><it>Default</it></value></prop></node></item><item oor:path="/org.openoffice.Office.Recovery/RecoveryList"><node oor:name="recovery_item_2" oor:op="replace"><prop oor:name="DocumentState" oor:op="fuse"><value>0</value></prop><prop oor:name="Filter" oor:op="fuse"><value>HTML</value></prop><prop oor:name="Module" oor:op="fuse"><value>com.sun.star.text.WebDocument</value></prop><prop oor:name="OriginalURL" oor:op="fuse"><value>file:///C:/Settings/Administrator/Desktop/ReleasePlan.htm</value></prop><prop oor:name="TempURL" oor:op="fuse"><value></value></prop><prop oor:name="TemplateURL" oor:op="fuse"><value></value></prop><prop oor:name="Title" oor:op="fuse"><value>ReleasePlan.htm</value></prop><prop oor:name="ViewNames" oor:op="fuse"><value><it>Default</it></value></prop></node></item><item oor:path="/org.openoffice.Office.Recovery/RecoveryList"><node oor:name="recovery_item_3" oor:op="remove"/></item><item oor:path="/org.openoffice.Office.Recovery/RecoveryList"><node oor:name="recovery_item_4" oor:op="remove"/></item>
и "после"
Цитировать<item oor:path="/org.openoffice.Office.Recovery/RecoveryInfo"><prop oor:name="Crashed" oor:op="fuse"><value>false</value></prop></item><item oor:path="/org.openoffice.Office.Recovery/RecoveryList"><node oor:name="recovery_item_1" oor:op="remove"/></item><item oor:path="/org.openoffice.Office.Recovery/RecoveryList"><node oor:name="recovery_item_2" oor:op="remove"/></item><item oor:path="/org.openoffice.Office.Recovery/RecoveryList"><node oor:name="recovery_item_3" oor:op="remove"/></item><item oor:path="/org.openoffice.Office.Recovery/RecoveryList"><node oor:name="recovery_item_4" oor:op="remove"/></item>
Получается что-то вроде счётчика "восстановления" {-?}. Обратите внимание на цветовое выделение - это кириллица из СР-1251?
Б. Работу расширения лучше всего комментирует выдержка из registrymodifications.xcu
Цитировать<item oor:path="/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['PickList']/ItemList"><node oor:name="file:///C:/Settings/Administrator/My%20Documents/arm.txt" oor:op="remove"/></item><item oor:path="/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['PickList']/OrderList"><node oor:name="0" oor:op="remove"/></item><item oor:path="/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['URLHistory']/ItemList"><node oor:name="file:///C:/Settings/Administrator/Desktop/%D0%B3%D0%B4%D0%B5_%D1%80%D0%B8%D1%81%D1%83%D0%BD%D0%BA%D0%B8.html" oor:op="remove"/></item>
Ни о какой чистке Истории речи быть не может - имхо.

Рыбка Рио

Цитата: ape от  7 апреля 2011, 14:45Работу расширения лучше всего комментирует выдержка из registrymodifications.xcu
Что вы хотите этим сказать? У вас на диске нет файла file:///C:/Settings/Administrator/My%20Documents/arm.txt но расширение его не удалило из списка?
ubuntu 12.04 + LibO3.6.0

ape

Я хочу сказать, что расширение в файле registrymodifications.xcu из "истории-пункт(<item>)" удаляет только "листинг" названия файла в окне soffice.exe-Открыть-↓; оно не проверяет наличие файла по указанному пути.

Рыбка Рио

Цитата: ape от  7 апреля 2011, 15:27Я хочу сказать, что расширение в файле registrymodifications.xcu из "истории-пункт(<item>)" удаляет только "листинг" названия файла в окне soffice.exe-Открыть-↓; оно не проверяет наличие файла по указанному пути.
Кажется, теперь понимаю. (Только последняя фраза мне не очень понятна. Как это "оно не проверяет наличие файла ..." А как же оно помечает отсутствующие  файлы в диалоге?  Или оно и этого у вас не делает. Блин, вместо тысячи слов, лучше 1 минуту видео показали б.)
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Моё видео: YouTube - History Master 1.1.1 + LibreOffice 3.3.2. Там видно если присмотреться то о чём говорили ape: несмотря на то что список недавно открытых файлов не содержит отсутствующих на диске файлов, файл xcu всё ещё содержит какие-то упоминания о них.
ubuntu 12.04 + LibO3.6.0

ape

#37
Цитата: Клио от  7 апреля 2011, 18:13
то о чём говорили ape: несмотря на то что список недавно открытых файлов не содержит отсутствующих на диске файлов, файл xcu всё ещё содержит какие-то упоминания о них.
'ape' утверждает, что отсутствие (удаление) файла с диска не приводит к его удалению из Истории средствами Офиса, а расширение удаляет только часть информации о ранее открытых, включая удалённых ранее Проводником, файлах - ту часть записи, которая "отвечает" за показ имени файла в Программных окнах.  Таким образом, "Археолог", покопавшись в Истории, расскажет Вам о том, какие файлы открывал каждый (по списку) пользователь за всё время пользования офисным пакетом. В конечном итоге Вы сможете "вырастить" целый многостраничный Живой_Журнал, главным и постоянным чтецом которого является сам запускающийся Офис.

Рыбка Рио

Оказалось, издатель расширения знает об этой проблеме. Она будет исправлена в 3.4 вместе с Bug 77102 (removeByName() for set nodes should remove them realy in XCU file). Т.е., в Dev300m106 уже работает, т.е. мусора не остаётся (после перезапуска).
ubuntu 12.04 + LibO3.6.0

ape

У OOo-300dev106 другой "способ ведения" registrymodifications.xcu? По Офис-3.4: на сайте вывешен DEV-101 в качестве "альфы", а "105" - крайний по исправлению багов.
ИМХО. Для программиста расширение подобного плана для registrymodifications.xcu - получасовая забава: 4 строковых переменных, значения которых и последовательность их расположения в тексте знаешь, найти очень сложно.

Рыбка Рио

Цитата: ape от  8 апреля 2011, 19:23ИМХО. Для программиста расширение подобного плана для registrymodifications.xcu
Т.е., вы имеете ввиду править xcu  файл непосредственно, расширением? По-моему, не получится. Попробуйте при открытом офисе исправить файл xcu, удалить оттуда всю историю, потом закройте офис и откройте снова. Всё вернётся как было. xcu файл отражает текущее состояние реестра, а реестр хранится во время работы офиса - в памяти компьютера (так ведь?), поэтому редактировать файл xcu - бесполезно. Его можно отредактировать внешней программой, но офис дожен быть закрыт.
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Цитата: ape от  8 апреля 2011, 19:23У OOo-300dev106 другой "способ ведения" registrymodifications.xcu?
Нет, не имеет значения в каких файлах хранится реестр, например, в OOo 2.2 история хранилась в файле History.xcu (не знаю точно, но наверное, т.к. по крайней мере в 3.2 было так), но проблема была той же. Это просто ошибка в том, как офис управляется со своим реесторм (наверное в методе removeByName() или где-то рядом)
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Цитата: ape от  8 апреля 2011, 19:23По Офис-3.4: на сайте вывешен DEV-101 в качестве "альфы", а "105" - крайний по исправлению багов.
исправление появилось начиная с dev300m101 (Issues for DEV300m101)
ubuntu 12.04 + LibO3.6.0

ape

#43
Цитата: Клио от  8 апреля 2011, 20:50
Т.е., вы имеете ввиду править xcu  файл непосредственно, расширением? По-моему, не получится... реестр хранится во время работы офиса - в памяти компьютера (так ведь?), поэтому редактировать файл xcu - бесполезно. Его можно отредактировать внешней программой, но офис дожен быть закрыт.
Но заменить язык интерфейса после перезапуска получается. Кнопка "очистить историю" только в Главном окне под Сервис - Параметры..., которая:
- создаст копию файла;
- найдёт 4 строковых по "образцам";
- создаст 2 выделения;
- заменит их на "болванку" или удалит;
- перезапустит Офис, так, чтобы записался не RAM-файл, а правленая копия (или копия записалась "сверху"):
разве это большая проблема для программиста, знающего Офис?

ape