![]() |
|
Модераторы: mihanik |
![]()
|
|
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: нет Всего: 1 |
Здравствуйте,
Так недавно, точнее вчера практически впервые увидел синтаксис VBA, так что ясно какой мой уровень. Есть макрос, он должен исправлять в тексте символы с кодировкой Latin на кириллицу. Но траблы пока что не в этом. У меня есть разработки другого программера, он тоже писал весч для поиска и форматирования каких то слов, так вот я макрос этот должен переделать. есть как бы матрица в буква русского алвавита соответствует коду символа на latin, так когда я читаю символ из документа я должен распознать его код (чтоб заменить на соответствующий ему символ кириллицы), функция которая возвращаяет код символа вроде ChrW(здесь я вставляю символ из документа). На этой функции как раз компилятор и ругается, типа не соответствие типов, как я понял она не может работать со строками. Может есть альтернативная функция, которая поможет мне получить код символа? Заранее спасибо. --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
Chr
разве не это? Добавлено @ 22:27
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Код символа возвращает функция Asc и ее вариации.
Функция Chr и ее вариации выполняют обратную задачу - возвращают символ с заданным кодом
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: нет Всего: 1 |
ok, спасибо.
Я составил с помощью этих функций таблицу кодов и соответствующих им символов и даже смог интегрировать все это в макрос(другого программера, который форматирует слова, н-р: както на как-то), но все работает отлично, если не одно но, этот макрос за единицу берет слово и его сверяет со словом в своей библиотеке, у меня тоже все работает, когда символ кривой представляет собой слово собственной длины, а если этот кривой символ встречается подряд, то он распознает его как слово сравнивает коды и ясно что ниче не совпадает. Короче мне надо взять за единицу не слово а символ и написать процедуру проверки символов по одному начиная с начала до конца документа , как организовать такой цикл? замену внутри цикла думаю сам напишу. --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: нет Всего: 1 |
сорри, ответ на предыдущий пост нашел, но появилась новая трабла:
как заменить весь текст документа на переменную стринг? --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Еще понять бы где у тебя текст документа? в Ворде? или еще где?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: нет Всего: 1 |
да в ворде я к нему обращатся пытаюсь как Thisdocument. итд.
Появилась новая трабла, когда модуль принес домой, попробовал запустить, то как я понял он не видит текста документа, потому что ThisDocument.Characters.Count на работе выдавала количество символов, а дома всегда 1, не смотря на то есть текст или нету, с чем это может быть связано? --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Genyaa |
|
|||
|
Усердный ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.9.2006 Где: Москва Репутация: 2 Всего: 11 |
ThisDocument.Content.Text - возвращает текст Этого документа в виде String. --------------------
Всякое решение плодит новые проблемы. |
|||
|
||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: нет Всего: 1 |
Спасибо большое.
У меня последний вопрос: как обратится к выделенному тексту и получить от него количество символов и сам текст? З.Ы: InStr - что это за функция и что она делает? ЗЗЫ: можно ли обратится к символу переменной типа стринг по индексу как это в pascal/delphi? Это сообщение отредактировал(а) Insert - 19.10.2006, 18:06 --------------------
пьяный русский кодер практически непобедим |
|||
|
||||
| Aloha |
|
||||||||||||||||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 5 Всего: 165 |
Insert
_________________________________________
_________________________________________
Возвращает Variant (Long) определяющее позицию первого вхождения одной строки в другую Аргументы функции InStr: start Необязательный. Числовое выражение, которое устанавливает начальную позицию для поиска. Если опущено, поиск начинается с первого символа. Требуется, если определен характер сравнения. string1 Обязательный. Строковое выражение, в котором ведется поиск. string2 Обязательный. Строковое выражение, поиск которого ведется. compare Необязательный. Определяет тип сравнения строк. _________________________________________
Mid(string, start[, length])
Это сообщение отредактировал(а) Aloha - 19.10.2006, 19:49 |
||||||||||||||||
|
|||||||||||||||||
| Genyaa |
|
||||||
|
Усердный ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.9.2006 Где: Москва Репутация: 2 Всего: 11 |
Selection.Text - выделенный в данный момент текст в виде String Len(Selection.Text) - длина выделенного текста Slection.Characters.Count - количество символов в выделенной области - у меня получилось это равно Len(Selection.Text)
Возвращает положение (адрес) подстроки в строке, если построка есть в этой строке, иначе 0.
Функция Mid возвращает любую часть строки с указанного символа указанной длины. Например: Mid("Это пример текста", 8, 1) вернет "м" --------------------
Всякое решение плодит новые проблемы. |
||||||
|
|||||||
| Insert |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 13.4.2006 Репутация: нет Всего: 1 |
Большое вам спасибо) буду пробовать. Aloha твой код попробую оч надеюсь что подойдет.
--------------------
пьяный русский кодер практически непобедим |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |