Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 24 май 2017, 15:35

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


Размещение файлов в формате vsd (а не vsdx/vsdm), увеличивает вероятность ответа стремительным домкратом !!!



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Работа над ошибками: Error1
СообщениеДобавлено: 15 май 2014, 19:21 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3250
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Теперь, как бороться с ошибками 1 и 2? В предыдущей статье я описывал формат XML, и одно из его преимуществ указывал его текстовый синтаксис. Соответственно, надо открыть файл содержащий ошибку, сохранить его в формате XML-drawing. Затем надо закрыть файл и обязательно закрыть текущую сессию, чтобы выгрузить программу. И, затем, снова открыть XML файл. Программа обработает его за большее время, но в конце вы получите тот же файл. Что касается внедренных объектов, то возможно их придется вставлять заново. Затем сохраняйте его как обычный vsd-файл и работайте дальше. Именно эту незатейливую процедуру я и назвал «Информационный катарсис».
Изображение
9rey в посте #2169 писал(а):
если проблема только с тем документом, видимо он где-то глючит. можно попробовать сохранить в более ранней версии, либо в формате xml, потом обратно.
оказалось, что у меня есть целая папка с файлами содержащими ошибку №1. Изображение
пришлось написать такой вот код Изображение
Код:
Sub vsd_RepairError1()
dim fso ' определяем переменную fso объект файловой системы
dim fil ' определяем переменную fil файл
Dim nn as string ' определяем переменную nn - имя нового файла в формате vdx
Dim sn as string ' определяем переменную sn - полное имя редактируемого файла
Dim pth as string ' определяем переменную pth - путь к папке где лежит редактируемый файл
Dim fn as string ' определяем переменную fn - имя редактируемого файла
Dim doc As Document ' определяем переменную doc - собственно редактируемый файл
Set doc = ActiveDocument ' назначаем переменную doc - собственно редактируемый файл
pth = doc.Path  ' назначаем переменную pth - путь к папке где лежит редактируемый файл
fn = doc.Name ' назначаем переменную fn - имя редактируемого файла
sn = pth & fn ' получаем переменную sn - полное имя редактируемого файла
nn = Replace(sn, ".vsd", ".vdx") ' получаем переменную nn - имя нового файла в формате vdx
doc.SaveAsEx nn, visSaveAsWS ' сохраняем редактируемый файл в формате vdx
doc.Close ' закрываем редактируемый файл
Documents.OpenEx nn, visOpenCopy ' открываем редактируемый файл заново
Set doc = ActiveDocument ' назначаем переменную doc - собственно почищенный файл
doc.SaveAs sn ' сохраняем полученный файл с первоначальным именем
doc.Close ' закрываем полученный файл
Set doc = Nothing '  освобождаем переменную doc
Set fso = CreateObject("Scripting.FileSystemObject") ' создаем объект файловой системы
Set fil = fso.GetFile(nn) ' получаем переменную fil файл с расширением vdx
fil.Delete  ' удаляем файл с расширением vdx, ибо эти файлы очень много весят в 2-6 раз больше исходного
Set fil = Nothing '  освобождаем переменную fil
Set fso = Nothing '  освобождаем переменную fso
End Sub

палим реакцию


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB