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

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 09:50

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


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


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 97 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 21:05 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
Но это всё потом, сначала научусь чистые номера переносить
золотые слова ! начинать лучше с простого и не мешать в кучу несколько условий :wall:
я уже потерял нить дискуссии: мы ищем в тексте где начинается ранее вставленное поле или какой то номер в тексте ?

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 21:09 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
я уже потерял нить дискуссии: мы ищем в тексте где начинается ранее вставленное поле или какой то номер в тексте ?

Ищем номер в тексте, отделяем его от от остального текста, переносим в ячейки prop и user, и вставляем назад уже полями, всё по образцу штатного нумератора, чтобы им далее нумеровать уже без обработки.
П.С. Надо ещё подумать что делать если попадутся "правильные" шейпы, например уже после обработаки или после нумератора


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 21:21 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
Ищем номер в тексте, отделяем его от от остального текста, переносим в ячейки prop и user
блин, похоже придется посимвольно текст разбирать. смотреть по ASCII-таблице. если символ принадлежит диапазону 48-57 это число :mrgreen:
потом еще надо смотреть сколько символов соответствуют условию, таково будет количество цифровых символов

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 21:28 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
придется посимвольно текст разбирать

И без этого страшно было :roll: Теперь ваще "весело" будет :!:
С другой стороны, хорошо, что цифр меньше чем букв!.. А если бы ещё иероглифы были!? :mrgreen:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 21:32 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Surrogate писал(а):
похоже придется посимвольно текст разбирать. смотреть по ASCII-таблице. если символ принадлежит диапазону 48-57 это число
Код:
Sub test()
Dim shp As Shape, dl As Integer, symb As String, sn As Integer
Set shp = Visio.Application.ActivePage.Shapes(1)
dl = Len(shp.Text)
For i = 1 To dl
symb = Mid(shp.Text, i, 1)
sn = Asc(symb)
If sn > 48 And sn < 57 Then MsgBox symb & " is number!"
Next
End Sub


ЮрийR писал(а):
И без этого страшно было
а как вы хотите разбирать варианты?
ЮрийR писал(а):
Может быть "Кл-1", или "1-я клемма" или ""
тут разделителя нет

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 21:37 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
а как вы хотите разбирать варианты?
ЮрийR писал(а):
Может быть "Кл-1", или "1-я клемма" или ""
тут разделителя нет

Нет, ну сама идея с ASCII зачётная, но я не уверен, что мне хватит запала её реализовать, поэтому пока что я планирую ручной ввод данных для разделения


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 21:41 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
сама идея с ASCII зачётная, но я не уверен, что мне хватит запала её реализовать
все уже украдено до вас, см. код в моем предыдущем сообщении :mrgreen:
надо еще придумать как количество подряд идущих цифр искать

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 21:48 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
все уже украдено до вас :mrgreen:
надо еще придумать как количество подряд идущих цифр искать

Действительно, слона то я и не заметил =)
Разве нельзя посимвольно смотреть и сразу ставить!?:
Если цифра = a(i)
Если не цифра = t(i)

Итого Prop.Row = a(1)..&.a(i)
User.Row = t(1)..&.t(i)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 22:59 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
Действительно, слона то я и не заметил =)
я его туда не сразу подкинул :mrgreen:
ЮрийR писал(а):
Итого Prop.Row = a(1)..&.a(i)
User.Row = t(1)..&.t(i)
синтаксис явно не из VBA, если такой вообще где-то применим
Содержимое спрятано под спойлер ↓
Спойлер:

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 23:13 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate
Постараюсь применить, большое спасибо!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 23:24 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
Постараюсь применить

Пока ещё рано, тут только общая идея поиска цифр в тексте. Найдены 3 параметра сами цифры, откуда они начинаются и на чем заканчиваются

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 04:18 
Не в сети
Ветеран

Зарегистрирован: 26 авг 2019, 21:07
Сообщений: 267
Использую Visio c: 2019
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
блин, похоже придется посимвольно текст разбирать
Есть чей-то макрос от Shishok выделения не изменяемой части позиционного обозначения. Может пригодится...
Код:
'------------------------------------------------------------------------------------------------------------
' Macros        : ExtractOboz - Функция определения неизменяемой части обозначения
' Author        : Shishok
' Date          : 2014.12.01
' Description   : Определения неизменяемой части обозначения Например: 1, ГР1, р, Гр1.1, ППР1-1, Выкл, П122.1 или типа того
' Link          : https://visio.getbb.ru/viewtopic.php?p=5904#p5904, https://github.com/shishok, https://disk.yandex.ru/d/qbpj9WI9d2eqF
'------------------------------------------------------------------------------------------------------------
Function ExtractOboz(Oboz) ' Функция определения неизменяемой части обозначения

Dim ObozF As String, i As Integer, Flag As Boolean
Flag = Oboz Like "*[-.,/\]*"

For i = 1 To Len(Oboz)
    If Not Flag And Mid(Oboz, i, 1) Like "[a-zA-Zа-яА-Я ]" Then GoSub AddChar
    If Flag And Mid(Oboz, i, 1) Like "[a-zA-Zа-яА-Я0-9 ]" Then GoSub AddChar
    If Flag And Mid(Oboz, i, 1) Like "[-.,/\]" Then GoSub AddChar
Next
   
ExtractOboz = ObozF
Exit Function

AddChar:
    ObozF = ObozF + Mid(Oboz, i, 1)
Return
End Function

_________________
САПР-АСУ
https://github.com/gtfox/
YouTube


Последний раз редактировалось gtfox 25 янв 2022, 21:32, всего редактировалось 1 раз.

Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 09:57 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
gtfox
Surrogate

Спасибо дядьки, но ваши лошади уже убежали далеко вперёд, а я на своей телеге остался ещё где-то в районе старта :roll:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 10:32 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
обновил код
ЮрийR писал(а):
но ваши лошади уже убежали далеко вперёд, а я на своей телеге остался ещё где-то в районе старта
Запряѓайте хлопцi коней…


Вложения:
Комментарий к файлу: образец с вариантами типа "Кл-1", или "1-я клемма" или "1к"
Test.vsd [29 Кб]
Скачиваний: 25

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 10:51 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
обновил код

Крутяк!
Уррра! Заработало!!!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 11:07 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
Заработало!!!
поздравляю !!! :mrgreen:
нашел косячок в gist: девятки не отрабатывало :!:
Surrogate писал(а):
если символ принадлежит диапазону 48-57 это число
критерий попадания в числа: код символа более 47 и менее 58
Цитата:
(числу 0 соответствует 48 … числу 9 - 57) !
If sn > 47 And sn < 57 58 Then
ну и комментарии добавил, для лучшего понимания что происходит "по ходу пьесы"
выложенном примере всё уже было поправлено, но без комментов…
Дополнено позднее:
gtfox писал(а):
Есть чей-то макрос выделения не изменяемой части позиционного обозначения.
сразу понял по стилю, что это Shishok ! теперь нашел откуда
Старенький макрос раскопал. Там есть нюанс. Либо все время копировать/дублировать шейпы с листа, либо все время тащить из трафарета. А то нумерация сбивается

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 12:51 
Не в сети
Ветеран

Зарегистрирован: 05 июл 2012, 21:34
Сообщений: 225
Очков репутации: 27

Добавить очки репутацииУменьшить очки репутации
Кстати. В VBA же есть функция IsNumeric.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 13:24 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Robink писал(а):
В VBA же есть функция IsNumeric.
ага! у меня были смутные воспоминания о том, я же вроде где-то использовал ?
Surrogate в сообщении #7413 писал(а):
If IsNumeric(row_value) Then  ' если в ячейке число
поиск по форуму по ключевому слову подвел isnumeric буквально вчера ничего не находил ! :wall:
зато сегодня уже выдает :o
Дополнено позднее:
Robinkzn в сообщении от 07/19/2011 писал(а):
Ничего не понимаю. Если макрос на VBA, там же есть функция isnumeric.
ты же мне сам ее показывал, аж хрен его знает сколько лет назад !!! :mrgreen:

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 13:38 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
If IsNumeric(row_value) Then  ' если в ячейке число

Я так понимаю не мой случай, у меня же числа с текстом перемешаны?!


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 13:49 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
Я так понимаю не мой случай, у меня же числа с текстом перемешаны?!
ну это да. вместо моего "колхоза" :oops:
Код:
sn = Asc(symb)
If sn > 48 And sn < 57 Then
можно обойтись без вычисления ASCII
Код:
If IsNumeric(symb) Then
а от перебора символов это не освободит :wall:

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 97 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

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



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

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


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

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