|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.05.2009, 15:47 | #1 |
Пользователь
Регистрация: 30.05.2009
Сообщений: 11
|
Помогите с написанием макроса для Word,который преобразует кодировку текста из указанной в указанную
задали такое задание,я сделал так:
Sub Kodirovka() ' ' Kodirovka Макрос ' ' ChangeFileOpenDirectory "C:\Documents and Settings\Admin\Рабочий стол\" ActiveDocument.SaveAs FileName:="kodirovka.txt", FileFormat:=wdFormatText, _ LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _ :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _ SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _ False, Encoding:=1251, InsertLineBreaks:=False, AllowSubstitutions:=False _ , LineEnding:=wdCRLF ActiveDocument.Close Documents.Open FileName:="kodirovka.txt", ConfirmConversions:=False, _ ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _ PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _ WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="", _ Encoding:=874 ActiveDocument.SaveAs FileName:="kodirovka.doc", FileFormat:= _ wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _ True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _ False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False End Sub Преподаватель сказал что это неправильно и нужно сделать с помощью цикла по всем символам в документе,который меняет символы одной кодировки на другую.Как сделать это даже не представляю(в универе изучаем C++),помогите кто может. |
30.05.2009, 16:04 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Сохранить файл в нужном формате достаточно просто:
Код:
ActiveDocument.TextEncoding = msoEncodingArabic А вот как должен выглядеть текст после смены кодировки в цикле, я не представляю... |
30.05.2009, 16:33 | #3 |
Пользователь
Регистрация: 30.05.2009
Сообщений: 11
|
вот что он мне написал "чтобы помочь":
цикл по всем символам документа и замена,нечто вроде с=tbl[c] tbl-таблица перекодирования 198->244 199->227 200->245 порылся в интернете, нашел вот это: Функции RusDosWin$ и ULrus$ представляют собой примеры практического применения функции StrChange$. Первая производит преобразование русских символов из кодировки DOS в Windows и наоборот, а вторая — строчных русских символов в прописные, и наоборот. Набор русских символов в кодировке DOS и Windows (константа W$) очень просто получить программным образом: W$ = "": D$ = "" For i = 192 To 255: W$ = W$ + Chr$(i): Next For i = 128 To 175: D$ = D$ + Chr$(i): Next For i = 224 To 236: D$ = D$ + Chr$(i): Next Print W$: Print D$ может быть как нибудь с помощью этого? |
30.05.2009, 16:50 | #4 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Сколько кодировок должен поддерживать макрос - столько и таблиц перекодировки должно быть. В принципе, если очень постараться, можно найти в интернете соответствия между кодировками (для одной из кодировок пример у тебя уже есть), и сделать универсальный макрос. В каком формате даны исходные файлы? (txt или doc) Аналогичный вопрос по формату выходных файлов (тех, которые получаются в результате обработки) В случае с текстовыми документами (txt) даже цикл организовывать не нужно - там можно преобразовать кодировку средствами VBA. |
|
30.05.2009, 17:01 | #5 |
Пользователь
Регистрация: 30.05.2009
Сообщений: 11
|
кодировок всего две:из одной в другую(любые).Файл в формате doc.Как я сделал задание-это полностью неправильно.Принцип работы макроса:дается файл(например какие-нибудь каракули(известно в какой они кодировке)), которые раньше были русским текстом.С помощью макроса нужно преобразовать обратно в русский текст.
Последний раз редактировалось Сотников Роман; 30.05.2009 в 17:08. |
30.05.2009, 18:09 | #6 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Дайте пример документа, который был русским текстом, но в неправильной кодировке.
Лучше день потерять — потом за пять минут долететь!©
|
30.05.2009, 18:34 | #7 |
Пользователь
Регистрация: 30.05.2009
Сообщений: 11
|
Текст любой.Задание- сделать макрос который меняет текст из одной кодировки в другую,больше ничего не сказано.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос текста из Excel в Word | Aleksandra | Microsoft Office Word | 3 | 23.09.2008 08:46 |
Как создать новый файл Word из макроса Excel? | Dorvir | Microsoft Office Excel | 12 | 08.07.2008 16:50 |
подскажите кодировку для казахстана. | Sjava | HTML и CSS | 4 | 17.07.2007 15:08 |