2013-10-06 5 views
0

Я пытаюсь взять большой файл корейской лексики и настроить ее для плавного перехода в программу флеш-карт. Формат файла - [Корейское слово/фраза] [Перевод на английский] [Корейское примерное предложение]. Пример:писать слово макроса - как написать Find, чтобы найти следующий корейский символ в строке?

너무 피곤 해서 Потому что я устал 너무 피곤 해서 잤 어요.

Я могу написать макрос, чтобы найти первое английское письмо и заменить пространство перед ним вкладкой. Я определил первое английское письмо, выполнив поиск диапазона [a-Z]. После этого я хочу найти начало примерного предложения, выполнив поиск следующего корейского символа, но Каков диапазон для корейских символов?

Я нашел FAQ для юникода на корейских персонажах, который, казалось, предполагал, что каждый символ на самом деле представляет собой просто комбинацию отдельных букв, а в некоторых видах программирования можно рассматривать как отдельные буквы, но я, вероятно, неправильно понял. Идея заключалась в том, что что-то вроде «식» на самом деле является тремя буквами «ㅅ» + «ㅣ» + «ㄱ». Поэтому я попробовал поиск только по одной букве «ㅅ» (которая появляется в тоннах символов в моем исходном файле) и не получила хитов. У этого наверняка была возможность сделать вещи простыми, но не кубиками.

+0

Просто мысли, как обходной путь вы могли бы искать первый символ после пробела, который НЕ находится в диапазоне [aZ]? – stobin

+0

Я полностью пробовал этот маршрут, и это не может быть и речи, но я столкнулся с проблемами и там. Сначала я нажимал пунктуацию, поэтому я попытался исключить отдельные знаки пунктуации из моего поиска. У входного файла было множество одинарных кавычек (см. «Я есть» в примере выше), и, хотя я смог исключить другие знаки препинания из Find, я пробыл прошлой ночью, пытаясь избежать одиночной цитаты в макрос, и ни один из методов, которые я пробовал (обратная косая черта, двойная обратная косая черта, использование двух одинарных кавычек, включение одиночной кавычки в двойные кавычки и т. д.). – user2031082

+0

Вы можете использовать функцию 'ASC', чтобы получить значение Unicode символа? См. Этот [MSDN] (http://msdn.microsoft.com/en-us/library/aa262678%28VS.60%29.aspx) Ссылка –

ответ

2

Хорошо, понял - нашел диапазон здесь: http://en.wikipedia.org/wiki/Korean_language_and_computers#Hangul_in_Unicode

Ниже код в моем макросе находит следующий корейский символ в документ Word:

With Selection.Find 
    .Text = "[" & ChrW(44032) & "-" & ChrW(55203) & "]" 
    .Replacement.Text = "" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = False 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = True 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
Selection.Find.Execute