К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Включение текста по условию в документ ворда

Гость
0 - 28.02.2018 - 20:14
В нормальных средах программирования есть директивы препроцессора типа

#define ABCD
.....
.....
.....

#ifdef ABCD

kusok koda

#else

kusok koda2

#endif

Вопрос - есть ли нечто подобное в ворде, чтобы по условию включать в документ нужные куски кода



Гость
1 - 28.02.2018 - 20:18
Лично я как то не озадачивался таким, нужды не было
В скрипте запиши что нибудь

Отредактировано nordbox; 28.02.2018 в 20:22. Причина: лишнее
Гость
2 - 28.02.2018 - 20:23
Меня как то озадачивали еще в самом начале нулевых идиотской задачей:
Нужно было что бы вордовский док попал клиенту, он его открыл, прочитал и после закрытия там ничего не было внутри, т.е. удалялось содержимое и при втором открытии тупо пустой лист )))
Гость
3 - 28.02.2018 - 20:47
(2) у нас был такой хитроЖ..й поставщик с закидонами, его быстренько обломали на нормальные документы.
Гость
4 - 28.02.2018 - 20:49
в ворде есть оператор IF THEN ELSE
но он несколько не так как требуется работает
Гость
5 - 28.02.2018 - 21:07
Ну вот и я о том же заказчику такой задумки сказал ))
Ну сделать, то я сделал, показал, есть то хочется, но потом похоже заказчика тоже обломали с такими фортелями ))
А чем тебе IF THEN ELSE не нравится?
Гость
6 - 28.02.2018 - 21:34
Цитата:
Сообщение от nordbox Посмотреть сообщение
А чем тебе IF THEN ELSE не нравится?
мне надо вставлять целые абзацы и даже отдельные главы. Вроде этот оператор такого не позволяет... Хотя буду смотреть дальше
Гость
7 - 28.02.2018 - 21:47
Cut, Past
Не то?
Гость
8 - 28.02.2018 - 21:50
Если условие выполняется, вырезаешь, вставляешь, если нет другое ставишь, попробуй просто именно записать макрос, а там сообразишь что и как.
Гость
9 - 01.03.2018 - 12:54
Цитата:
Сообщение от nordbox Посмотреть сообщение
Cut, Past Не то?
не то.
10 - 01.03.2018 - 13:37
В microsoft visial basic все это есть. Что не получается?
Гость
11 - 13.03.2018 - 12:08
(10) есть для кода, а мне нужно для текста документа Word
12 - 13.03.2018 - 13:38
11-Helen1986 > Код для кода? :) Напиши что нужно сделать.
Гость
13 - 13.03.2018 - 14:36
(12)

нужно аналогично директивам условной трансляции для исходного кода программы вставлять куски текста (большие, от абзаца до отдельной главы) в текст документа word

т.е. если есть директива типа #define glava_123? то в текст документа вставляется нужная глава (неважно откуда, из файла или она уже есть в документе. Второе условие - должно работать форматирование текста по стилям)
Гость
14 - 13.03.2018 - 14:46
смысл всего этого - есть общая часть приборов (ну типа мат платы, которая оснащается разным набором датчиков - получаем разные модели приборов. Мат плата постоянно модернизируется из-за смены комплектующих и развития, уже задолбались поддерживать актуальные описания в документации на каждый прибор. Приходится постоянно таскать куски теста из докумета в документ, а так как приборов довольно много - муторно и много затрат на актуальность.

Программа прошивки на самом деле одна, с директивами условной трансляции, все отлажено (язык программирования - С), внешняя программа на дельфях, тоже одна, тоже с условной компиляцией, тоже нет проблем
15 - 13.03.2018 - 14:54
Ну так вставляем в текст #define glava_123. Начинаем запись макроса и получаем

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "#define glava_123"
.Replacement.Text = "Много текста из Война и мир"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
16 - 13.03.2018 - 14:56
В макросе записывали ctr+H.
Гость
17 - 13.03.2018 - 15:19
до этого я и сама дошла

это РУЧНАЯ замена... не пойдет, ибо непригодно.

хотелось бы расставить директивы - а потом зашел в голову, поправил одну директиву и получил нужный текст. А так ползать по 80 страницам и вручную править... и чем это лучше
18 - 13.03.2018 - 15:55
Как соотноситься
Цитата:
Сообщение от Helen1986 Посмотреть сообщение
хотелось бы расставить директивы
с
Цитата:
Сообщение от Helen1986 Посмотреть сообщение
А так ползать по 80 страницам и вручную править
Для автоматического заполнения в любом случае нужно сопоставление КодПараграфа - Текст параграфа.
Я бы сделал так:
Создаем документ в котором каждый абзац - описание нужного датчика. Абзац начинаем уникальным символом (#Glava123). Создаем макрос, который:

1. Создает новый документ
2. Запрашивает список нужных абзацев (можно вносить в документ)
2. перебирает все абзацы "большого" документа и если заголовок совпадает с нужным - копирует абзац в новый документ
19 - 13.03.2018 - 16:06
With ActiveDocument
Set Ps = .Paragraphs
End With


For Each P In Ps
i = i + 1

If Ps(i).Range.Text Like "*glava123*" Then
Либо добавляем в новый документ либо удаляем
End If
Next
Гость
20 - 13.03.2018 - 22:35
(19) слишком много ручной работы - это нужны квалифицированные эксплуатанты, которых нет. Нам бы чего нибудь попроще
21 - 14.03.2018 - 08:32
Цитата:
Сообщение от Helen1986 Посмотреть сообщение
слишком много ручной работы - это нужны квалифицированные эксплуатанты
Эксплуатант нажимает одну единственную кнопку.
Цитата:
Сообщение от Helen1986 Посмотреть сообщение
Нам бы чего нибудь попроще
Написать инструкцию в которой будет: Если у вас датчик такой то.... если такой то .....
Гость
22 - 14.03.2018 - 11:14
попробую. Но странно, что в таком навороченном продукте, как офис, такого не предусмотрено


К списку вопросов






Copyright ©, Все права защищены