| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > функция chrW |
| Автор: Insert 17.10.2006, 22:17 |
| Здравствуйте, Так недавно, точнее вчера практически впервые увидел синтаксис VBA, так что ясно какой мой уровень. Есть макрос, он должен исправлять в тексте символы с кодировкой Latin на кириллицу. Но траблы пока что не в этом. У меня есть разработки другого программера, он тоже писал весч для поиска и форматирования каких то слов, так вот я макрос этот должен переделать. есть как бы матрица в буква русского алвавита соответствует коду символа на latin, так когда я читаю символ из документа я должен распознать его код (чтоб заменить на соответствующий ему символ кириллицы), функция которая возвращаяет код символа вроде ChrW(здесь я вставляю символ из документа). На этой функции как раз компилятор и ругается, типа не соответствие типов, как я понял она не может работать со строками. Может есть альтернативная функция, которая поможет мне получить код символа? Заранее спасибо. |
| Автор: Romikgy 17.10.2006, 22:24 | ||
| Chr разве не это? Добавлено @ 22:27
|
| Автор: Akina 17.10.2006, 23:36 | ||||
Код символа возвращает функция Asc и ее вариации.
Функция Chr и ее вариации выполняют обратную задачу - возвращают символ с заданным кодом
|
| Автор: Insert 18.10.2006, 14:02 |
| ok, спасибо. Я составил с помощью этих функций таблицу кодов и соответствующих им символов и даже смог интегрировать все это в макрос(другого программера, который форматирует слова, н-р: както на как-то), но все работает отлично, если не одно но, этот макрос за единицу берет слово и его сверяет со словом в своей библиотеке, у меня тоже все работает, когда символ кривой представляет собой слово собственной длины, а если этот кривой символ встречается подряд, то он распознает его как слово сравнивает коды и ясно что ниче не совпадает. Короче мне надо взять за единицу не слово а символ и написать процедуру проверки символов по одному начиная с начала до конца документа , как организовать такой цикл? замену внутри цикла думаю сам напишу. |
| Автор: Insert 18.10.2006, 18:25 |
| сорри, ответ на предыдущий пост нашел, но появилась новая трабла: как заменить весь текст документа на переменную стринг? |
| Автор: Akina 18.10.2006, 18:31 |
| Еще понять бы где у тебя текст документа? в Ворде? или еще где? |
| Автор: Insert 18.10.2006, 20:34 |
| да в ворде я к нему обращатся пытаюсь как Thisdocument. итд. Появилась новая трабла, когда модуль принес домой, попробовал запустить, то как я понял он не видит текста документа, потому что ThisDocument.Characters.Count на работе выдавала количество символов, а дома всегда 1, не смотря на то есть текст или нету, с чем это может быть связано? |
| Автор: Genyaa 18.10.2006, 23:02 | ||
ThisDocument.Content.Text - возвращает текст Этого документа в виде String. |
| Автор: Insert 19.10.2006, 15:41 |
| Спасибо большое. У меня последний вопрос: как обратится к выделенному тексту и получить от него количество символов и сам текст? З.Ы: InStr - что это за функция и что она делает? ЗЗЫ: можно ли обратится к символу переменной типа стринг по индексу как это в pascal/delphi? |
| Автор: Aloha 19.10.2006, 19:38 | ||||||||||||||||
Insert
_________________________________________
_________________________________________
Возвращает Variant (Long) определяющее позицию первого вхождения одной строки в другую Аргументы функции InStr: start Необязательный. Числовое выражение, которое устанавливает начальную позицию для поиска. Если опущено, поиск начинается с первого символа. Требуется, если определен характер сравнения. string1 Обязательный. Строковое выражение, в котором ведется поиск. string2 Обязательный. Строковое выражение, поиск которого ведется. compare Необязательный. Определяет тип сравнения строк. _________________________________________
Mid(string, start[, length])
|
| Автор: Genyaa 19.10.2006, 19:59 | ||||||
Selection.Text - выделенный в данный момент текст в виде String Len(Selection.Text) - длина выделенного текста Slection.Characters.Count - количество символов в выделенной области - у меня получилось это равно Len(Selection.Text)
Возвращает положение (адрес) подстроки в строке, если построка есть в этой строке, иначе 0.
Функция Mid возвращает любую часть строки с указанного символа указанной длины. Например: Mid("Это пример текста", 8, 1) вернет "м" |
| Автор: Insert 19.10.2006, 20:33 |
| Большое вам спасибо) буду пробовать. Aloha твой код попробую оч надеюсь что подойдет. |