25 / 0 / 0
Регистрация: 14.12.2010
Сообщений: 9
|
|
1 | |
Макрос для вывода наиболее часто встречающийся в тексте символа.14.12.2010, 16:35. Показов 7495. Ответов 40
Метки нет (Все метки)
Помогите написать макрос для WORD, который бы отображал наиболее часто встречающийся в тексте символ. Причем рассматривается текст только в выделенной области.
с VB знаком только по одному занятию в универе.. есть предположения что это делается как-то через массивы и ASCII обозначения.. Помогите пожалуйста с макросом. Добавлено через 13 минут нашел подобную задачу для Delphi тут но нужно сделать подобное для VBA Word..
0
|
14.12.2010, 16:35 | |
Ответы с готовыми решениями:
40
Определить наиболее часто встречающийся символ в тексте Определить ASCII символ наиболее часто встречающийся в тексте Определение наиболее часто встречаемого символа в тексте Найти наиболее часто встречающийся символ. |
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,726
|
||||||
21.12.2010, 18:43 | 22 | |||||
Да не будет лишней проверка
Желание есть дорабатывайте, потом выложите, ОК??
1
|
Заблокирован
|
||||||
21.12.2010, 19:07 | 23 | |||||
За 15 минут код написал (на основе своего опыта), методом тыков:
0
|
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,726
|
|
21.12.2010, 19:26 | 24 |
проверил, вроде работает, я дописал последнюю строку
MsgBox vСимвол Получил пустой МсгБокс, вероятно это пробел??? Думаю стоить выводить несколько ответов самое большое количество встречаемых символов, то есть на 1 месте символ ... 2 место 3 место
0
|
Заблокирован
|
||||||
21.12.2010, 20:42 | 25 | |||||
Ципихович Эндрю,
я на одном слове делал код. Тогда надо Replace сделать для пробелов.
0
|
21.12.2010, 22:58 | 26 |
печатает лишь один (последний по ходу текста) символ с наибольшей встречаемостью.
Формально задача решена. Но считая так, например, самую частую цифру числа пи (а они там равновероятны), мы каждый раз (начиная где-то с двухмиллиардной) получим последнюю из рассматриваемых. Что неверно в принципе. Я же вывожу (в мессиджбокс) все максимально частые символы (все равные между собой максимумы). И кстати, отчего же не пробел? Символ есть символ... Хоть бы и разделитель. Что касается выделения — это дело практики. Пусть топикстартер сам потренируется.
0
|
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,726
|
|
22.12.2010, 05:52 | 27 |
Я же вывожу (в мессиджбокс) все максимально частые символы (все равные между собой максимумы). И кстати, отчего же не пробел? Символ есть символ... Хоть бы и разделитель.
все равные между собой максимумы? то есть если пробелов 40, а букв "А" 20, тогда будет пробел, если пробелов 20, а букв "А" 20, тогда будет пробел и буква "А"??? плоховато, лучше на 1 месте..., на втором .... и т. д. Подожду
1
|
22.12.2010, 18:09 | 28 |
Да: Макрос для вывода наиболее часто встречающийся в тексте символа. (вы же видели)
Пробел (код 32) там на первом месте лишь потому, что его код меньше.
0
|
1390 / 531 / 67
Регистрация: 10.04.2009
Сообщений: 8,726
|
|
22.12.2010, 18:42 | 29 |
Пробел (код 32) там на первом месте лишь потому, что его код меньше??????????
А я думал, что Пробел (код 32) там на первом месте лишь потому, что наиболее часто встречающийся в тексте символ Во всяком случае в том тексте, который я проверял
0
|
23.11.2011, 06:06 | 31 |
Нет. Это всё ещё в разработке☻
Прилагаю документ, где (после выделения текста как я объяснил) можно увидеть частоту его символов (в пределах 1 байта, то есть с кодами 0—255). Запуск по F5. Если снять комментарий с оператора if...end if (там лишь одна такая пара) — будет как на 1-м рисунке: наиболее частый/частые.
0
|
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
|
|||||||||||
23.11.2011, 12:25 | 32 | ||||||||||
Сообщение было отмечено как решение
Решение
Всуну и я свой пятак..
Тестировал код Busine2009 и свой на тексте порядка 10000 символов. Результат мой: пробел - 1427 00:09 Результат Busine2009(тот, который не удаляет пробелы тут не пустое место - пробел(не указано количество) 01:02 Кроме того таблица встречаемости в дебаггере
Добавлено через 54 минуты С сортировкой(время увеличилось на 1 с) :
2
|
23.11.2011, 13:14 | 33 | |||||
Сообщение было отмечено как решение
Решение
На скорость не замерял , и не сортировал, просто не стандартный алгоритм О_о
3
|
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
|
|
23.11.2011, 13:21 | 34 |
Забыл про этот вариант! А ведь в примерах есть
1
|
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
|
|||||||||||
23.11.2011, 13:37 | 36 | ||||||||||
Добавил сортировку.
1
|
23.11.2011, 17:43 | 37 |
Всегда пропускал такие коды — забыл, куда этот дебаггер шлёт свои аргументы.
Сегодня проникся красотой темы — решил испытать, 10 минут пытал VBE. Попытки сфотографировал. Алекс, объясните по-простому, а? Жалко же, что в натуре симфония оборачивается пустым звуком.
0
|
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
|
|
23.11.2011, 19:41 | 38 |
Всё намного проще? Ctrl+G
1
|
24.11.2011, 05:19 | 39 | |||||
Для небольших строк (с повтором символа в пределах сотни — то есть около ста слов) я его переделал с прицелом на удобочитаемость.
В частности, даже не особый дока сможет понять (по рисунку), что пробелов в тексте — 7.
1
|
24.11.2011, 05:34 | 40 |
Оставил i As Byte, но забыл отдельно обработать i = 255 (буква я, в данном контексте).
0
|
24.11.2011, 05:34 | |
24.11.2011, 05:34 | |
Помогаю со студенческими работами здесь
40
Найти наиболее часто встречающийся символ Найти наиболее часто встречающийся элемент матрицы Наиболее часто встречающийся символ в текстовом файле Вернуть элемент, наиболее часто встречающийся в массиве Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |