|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.09.2016, 13:42 | #1 |
Регистрация: 30.07.2010
Сообщений: 3
|
Выбор случайного значения из списка-массива (спинтакс)
Всем доброго дня!
Не смог кратко полностью описать в заголовке вопрос, но как бы основную проблему написал. Теперь подробнее. На днях столкнулся с новой задачей и никак не могу ее до конца решить. Суть: Найти в файле "html" все конструкции типа спинтакс, например, "{Доброго дня|Здравствуйте|Привет}, {уважаемый|дорогой} Петр!", случайным образом выбрать один вариант и заменить им набор. Т.е., в результате должно получиться: - Доброго дня, уважаемыйПетр! - Здравствуйте, дорогой Петр! - Привет, уважаемый Петр! - и т.д. Возникшие вопросы: 1. Как лучше считывать данные из файла "html" в кодировке UTF-8 без BOM? Много всего перелопатил - получилось только импортом на лист (переделал из макрорекордера): Код:
Еще в таком варианте, если длинная строка или есть табуляция, то ее при вгрузке эксель разбивает по разным ячейкам одной строки и тогда я вообще не соображу как обрабатывать. А одно из условий обработки - полное сохранение всего файла в таком же виде со всеми пробелами, табуляциями и т.п. Есть вариант считывания текста целиком, но я не могу понять как его обрабатывать: Код:
С учетом п.1, ищу построчно: Код:
-Как обрабатывать если начало конструкции в одной строке, а конец в другой (вполне может быть что даже не в следующей, а через одну или две)? -Никак не придумаю как обрабатывать случаи, когда есть вложенные конструкции, например, "{Сегодня {отличный|хороший|прекрасный} день!|Как {дела|поживаете}}." 3. Сохранение полученного текста в формате "html" в кодировке UTF-8 без BOM. Решил таким образом: Код:
Код:
1. Как лучше считывать данные из файла "html" в кодировке UTF-8 без BOM чтобы можно было максимально удобно обрабатывать текс? 2. Как обрабатывать если начало конструкции в одной строке, а конец в другой (вполне может быть что даже не в следующей, а через одну или две)? 3. Никак не придумаю как обрабатывать случаи, когда есть вложенные конструкции, например, "{Сегодня {отличный|хороший|прекрасный} день!|Как {дела|поживаете}}." 4. Да, и еще, в итоге всех манипуляций должен получиться файл html точно такой же как и исходный только с выбранными значениями из всех вариантов. Прикрепленные файлы: 123.html - шблон, 123_end.html - вариант результата, spintaks.xlsm - текущий вариант обработки. Помогите пож-та. Вродь пока все, извините за большое количество текста.. Последний раз редактировалось NaMoRZA; 17.09.2016 в 13:53. |
17.09.2016, 13:46 | #2 |
Регистрация: 30.07.2010
Сообщений: 3
|
Может можно как-то реализовать выбор случайного синонима с помощью регулярных выражений, но я никак не могу понять как это сделать.
|
17.09.2016, 15:41 | #3 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
считывать UTF-8 без BOM - есть же функция LoadTextFromTextFile вызывайте её с параметром "utf-8" Цитата:
так удалите все переводы строки (они не влияют ни на что в HTML), удалите лишние пробелы (функция Application.trim) - и потом ищите что вам нужно Цитата:
самый простой способ |
|||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выбор значения из раскрывающегося списка | grh | БД в Delphi | 2 | 01.10.2012 11:13 |
Выбор значения по признаку из массива | vvasilisk | Microsoft Office Excel | 2 | 20.02.2012 12:59 |
Выбор значения из списка с автозаполнением остальных полей. | NHVStudio | Microsoft Office Access | 4 | 13.02.2012 09:25 |
Выбор минимального и максимального значения из списка диапазона | mrantonio | Microsoft Office Excel | 3 | 24.10.2011 15:45 |
Как задать выбор значения с помошью списка в VBA? | k.soldatova | Помощь студентам | 4 | 20.07.2011 16:58 |