Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Office Word
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
LeoScoX
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 37
1

Удалить все китайские иероглифы из документа

10.09.2019, 12:07. Просмотров 902. Ответов 7

Здравствуйте!

Подскажите, пожалуйста, как можно удалить все китайские символы (иероглифы) из документа, не теряя при этом форматирование?

Сначала я думал это можно реализовать путем замены (Ctrl+H), но плохо разбираюсь в этом. Пробовал [!А-я], но теряется форматирование.

Потом думал просто изменить кодировку текста, но опять же - теряется форматирование при конвертации в .txt, что очевидно.

Затем наткнулся на это, но код почему-то у меня не срабатывает.

Если кто разбирается в Visual Basic, подскажите пожалуйста, как это можно реализовать. Вручную удалять уже нет сил.
Заранее спасибо
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2019, 12:07
Ответы с готовыми решениями:

Китайские иероглифы в файле
Вечер в хату, падсаны. Заметил очень забавную вещь: вроде ничего такого в коде странного нет,...

Китайские иероглифы в Bass_Show
Помогите разобраться, почему китайские иероглифы вместо названий потоков? procedure...

Китайские иероглифы в вызываемом окне
В функции вызова диалога выбора папки, надписи на диалоге вылазят иероглифами BOOL...

Китайские иероглифы в консольном приложении
Вопрос: можно ли вывести в консоли китайские иероглифы, или например специфичные немецкие буквы...

VS 2017: Китайские исходники - иероглифы
Здравствуйте! Скачал готовые исходники программы, автор из китая. Интерфейс программы и...

7
Dinoxromniy
507 / 264 / 85
Регистрация: 22.12.2015
Сообщений: 764
10.09.2019, 13:03 2
LeoScoX, приложите кусочек вашего проблемного файла и код, который вы нашли.
0
LeoScoX
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 37
10.09.2019, 17:13  [ТС] 3
Dinoxromniy,
Код, который нашел:
vb.net
1
2
3
4
5
Sub DeleteAllObjects()
For i = ActiveDocument.Shapes.Count To 1 Step -1  
    ActiveDocument.Shapes(i).Delete  
Next i
End Sub
Пример текста:
Кликните здесь для просмотра всего текста
6) 整套机组分全自动/手动两种控制模式;

Данные агрегаты управляется двум режимом, автомат и ручной режим.

7) 喷枪具有清洗功能,能够对喷嘴进行自动和手动清洗,大大简化喷枪堵塞维护;

У пистолета функция мойки, можно по режиму автомат и ручному помыть сопло, что упрощается обслуживание пистолета.


P.S. В документе также есть цифры, картинки, таблицы, различные символы (например ●, △).
0
Dinoxromniy
507 / 264 / 85
Регистрация: 22.12.2015
Сообщений: 764
10.09.2019, 17:28 4
Цитата Сообщение от LeoScoX Посмотреть сообщение
Код, который нашел:
Код удаляет формы, вам нужно удалить текст, вам он не подходит.
Цитата Сообщение от LeoScoX Посмотреть сообщение
В документе также есть цифры, картинки, таблицы, различные символы (например ●, △).
Приложите исходный текст в формате Word (достаточно одной страницы с иероглифами и символами ●, △)
1
10.09.2019, 17:28
LeoScoX
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 37
11.09.2019, 11:15  [ТС] 5
Dinoxromniy, добрый день, прикладываю пример:
0
Вложения
Тип файла: docx пример.docx (16.5 Кб, 4 просмотров)
shanemac51
Модератор
Эксперт MS Access
9058 / 3456 / 548
Регистрация: 07.08.2010
Сообщений: 9,681
Записей в блоге: 2
11.09.2019, 14:56 6
Лучший ответ Сообщение было отмечено Dinoxromniy как решение

Решение

Это нормальный китайский, можно удалить кодом, затем удалить лишние ````. иногда с ними рядом и не китайские символы, которые тоже надо удалить
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub M22000()
Dim C1 As Object, j1
For Each C1 In Word.ActiveDocument.Characters
j1 = AscW(C1)
If j1 > 10000 Or j1 < 0 Then
C1 = "`"
ElseIf j1 > 1110 Then
Debug.Print j1;
Else
''
End If
Next C1
End Sub
2.2 ``````` производительность оборудования:
1) ```````≤40kg
Вес одной трубы не больше 40кг
2) `````````20~60m/min``````
Линейная скорость продольной транспортной цепи: 20-60м\мин, (частотное регулирование.)


`` ```````
Трёхмерная картина окрашечной системы
```````````.``````````.````````````````````````````````.```````.``````````````.`````````;````````4`````````````````````` `````````````;`````````````````````````````````````.````````````.`````1.5`X1.2`X2`
Способ установки пистолета: 4 пистолета по кольцу расположится на окрашечном баке, при проходе трубы через индукционный прибор, пистолет принимает сигнал запуска, и опустить краситель распылить на поверхность трубы.
Габариты:1.5*1.2*2м


Индукционная катушка 3 группы(длина 1650*ширина 750* высота 1500мм)
Охлаждающая система: длина 3400*ширина 1400*высота 2500мм
2
LeoScoX
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 37
11.09.2019, 18:37  [ТС] 7
shanemac51, огромное спасибо вам! Все работает.

Понял, что код заменяет китайский на "`". А каким образом китайский обнаруживается, если не секрет?
0
shanemac51
Модератор
Эксперт MS Access
9058 / 3456 / 548
Регистрация: 07.08.2010
Сообщений: 9,681
Записей в блоге: 2
11.09.2019, 18:56 8
перебор символов документа и если их код AscW(C1)>10000 или менее 0, то это иероглиф
Visual Basic
1
2
3
For Each C1 In Word.ActiveDocument.Characters
j1 = AscW(C1)
If j1 > 10000 Or j1 < 0 Then
1
11.09.2019, 18:56
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2019, 18:56

XOR и китайские иероглифы в блокноте
Всем доброго времени. В текстовом документе test есть такая строка D:\\Games\\User\\Battlefield...

Как отобразить Китайские иероглифы в Dev-C++ ?
Всем привет,в програме написанной на DEV-C++ нужно отобразить китайские иероглифы, при каждом...

Как вывести китайские иероглифы в консоль?
Здравствуйте, подскажите как вывести в консоль Виндоус какой-нибудь китайский иероглиф. Например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru