Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,722
1

Вариаблес в файле Ворда

14.03.2019, 16:10. Показов 804. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте, ранее я уяснил, что максимальная длина строки в элементе коллекции Variables = 65280 (Word 2003, 2007)
ActiveDocument.Variables("steg") = String(65280, "a") '65281 - ошибка 5854 Слишком длинный строковой параметр
максимальное количество Вариаблес в файле Ворда - 32767 (Word 2000), создать можно и больше, но при попытке сохранить файл Ворд вылетает, то есть можно затолкать 65 280x32 767=2 139 029 760-два миллиарда 139 миллионов 29 тысяч 760
опытным путём проверяю:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Variables_добавить_в_документ()
    Dim i As Long
    Dim Старт_программы As Date
    'присвоение переменной даты начала программы
    Старт_программы = Time
 
    For i = 1 To 32767
        ActiveDocument.Variables.Add Name:=i, Value:=String(65280, "a")  
        Debug.Print i
    Next
MsgBox$ "Начато: " & Старт_программы & vbCrLf & _
            "Окончено: " & Time & vbCrLf & _
            "Время обработки: " & DateDiff("n", Старт_программы, Time) & " мин." & vbCrLf & _
            "2 139 029 760-два миллиарда 139 миллионов 29 тысяч 760 variables добавлено в документ"
End Sub
но на проходе 8174 получаю ошибку, почему так? спс

Добавлено через 3 минуты
ошибка метод Add of object Variables failed
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2019, 16:10
Ответы с готовыми решениями:

Имя и значение вариаблес в цикле
здравствуйте такой цикл стал выдавать ошибку объект был удалён- не подскажите почему? спс For i =...

Замена текста в файле ворда
Не работает замена текста в файле ворда из лотусскрипта, ошибок при этом не выдает. Что это может...

Заговор ворда
помните такой прикол? наберите в программе строку "правоспособность-способность лица иметь...

тег ворда
<o : p> тег ворда валидатор на него ругается выдает ошибку как можно реализировать или исправить...

8
oh my god
1454 / 793 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
15.03.2019, 19:05 2
А чего нужно добиться, вижу ведь это не программа а эксперимент какой-то
если 8174, то хочу вас поздравить, вы внесли информацию в общую копилку спасибо вам
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,722
15.03.2019, 19:36  [ТС] 3
спасибо за отклик
нужно простое понимание сколько и какой длины текста можно затолкать
чтобы рассчитывать при проектировании
то есть опытным путем я добавил
8173х65280=533 533 440, может и добавилась бы 8174-я но меньшей длины.....
означает ли это что я могу добавить большое количество вариаблес но меньшей длины но не более 65280 в сумме?

Добавлено через 9 минут
а еще о чудо, если вместо строки с буквой а будем добавлять букву щ или другую-может результат удивит
0
oh my god
1454 / 793 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
15.03.2019, 19:40 4
Ну вот, значит вместо а ставьте другую букву, и если результат будет отличаться в лучшую сторону, значит вы смогли эту проблему решить
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,722
15.03.2019, 20:00  [ТС] 5
Visual Basic
1
2
3
4
5
6
 
    For i = 1 To 8173
        ActiveDocument.Variables.Add Name:=i, Value:=String(65280, "a")
        Debug.Print i
    Next
    ActiveDocument.Variables.Add Name:=8174, Value:=String(8339, "a")
опытным путем установил, что можно добавить 8174 вариаблес длиной 8339
то есть всего
8173х65280=533 533 440
533 533 440+8339=533 541 779-ХЗ что это за цифра, почему например не круглая - 500 миллионов.....
видимо такой предел.....
изменение буквы а на щ никакой разницы не дало
0
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
16.03.2019, 01:09 6
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
8173х65280=533 533 440
Каждый символ - 2 байта, итого 1'067'066'880 байт, почти гигабайт (1ГБ=1'073'741'824 байт)! Насколько я знаю, 32-битное приложение (Word 2003, 2007) не может занимать более 2 ГБ, включая исполняемые модули и данные, так что вполне естественное ограничение.
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,722
16.03.2019, 07:44  [ТС] 7
Казанский, то есть если бы там в файле была бы книга "Война и мир" с картинками, то влезло бы еще меньше вариаблес?
ну и до кучи
ActiveDocument.Variables.Add Name:=String(255, "ф"), Value:=String(65280, "a")
то есть называть переменную можно строкой не более 255 знаков
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
16.03.2019, 12:09 8
Ципихович Эндрю, В романе Льва Толстого "Воина и мир" 188 тысяч 88 слов, и при этом 2 521 613 букв.
Это совсем мало, по сравнению с Вашими экспериментами

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
то есть называть переменную можно строкой не более 255 знаков
Ну зачем больше ? Что за необходимость ? Вы посчитайте (если в Вашем компьютере хватит колёсиков), сколько вариантов имен переменных можно сделать из этих 255 символов.
0
1389 / 530 / 67
Регистрация: 10.04.2009
Сообщений: 8,722
16.03.2019, 12:14  [ТС] 9
Цитата Сообщение от SoftIce Посмотреть сообщение
В романе Льва Толстого "Воина и мир" 188 тысяч 88 слов, и при этом 2 521 613 букв.
Это совсем мало, по сравнению с Вашими экспериментами
а картинки))
0
16.03.2019, 12:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2019, 12:14
Помогаю со студенческими работами здесь

For Each в таблице Ворда
я думал, что эти строки For w = 1 To ActiveDocument.Tables.Count Set oTbl =...

Из ворда - в лотус
Коллеги, накидайте советов по наиболее оптимальной связке MS Word и лотуса. На тех машинах, где...

Счетчик ворда
Ребят, помогите написать VBS скрипт. Суть такова: при его запуске он создает файлик, в который...

текст из ворда
в какой компонент можно скопировать текст из ворда, причем в тексте присутствуют формулы MS...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru