Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB конвертер шрифта / 20 сообщений из 20, страница 1 из 1
18.10.2012, 18:07
    #38004763
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Доброго Вам времени суток
Уважаемые господа

при наличии времени прошу Вас подсказать

есть большое количество документов которые были написаны шрифтом ArialAzLat (не через раскладку клавиатуры)
необходимо перевести эти документы в unikod (привести их в тот вид - как если бы они были бы набраны через раскладку клавиатуры)

возможно ли это ?
где можно почитать об этом, или посмотреть пример

С Уважением
Намик
...
Рейтинг: 0 / 0
18.10.2012, 18:11
    #38004775
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Намик, вы путаете шрифт, кодировку и раскладку.
Давайте может конкретный файлик для примера.
...
Рейтинг: 0 / 0
18.10.2012, 18:21
    #38004789
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
приветствую Вас
Благодарю Вас за ответ

вот пример


чтобы файл открылся Вам нужны будут шрифты которые я вложил
...
Рейтинг: 0 / 0
18.10.2012, 18:23
    #38004794
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
А результат какой надо получить?
...
Рейтинг: 0 / 0
18.10.2012, 18:26
    #38004798
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
без этих шрифтов - этот документы (и ему подобные) не будут читабельны при открытии
а вот если бы их набирали, выбрав в раскладке клавиатуры az(латиница)
то они откроются на любом компьютере

как их перевести вот в этот формат

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
18.10.2012, 18:31
    #38004809
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
К слову, шрифты можно интегрировать в документ - то есть они будут распространяться с документом и открыть можно будет везде.

Что касается перевода в юникод - можно принтскрином выложить то, что сейчас и то, что нужно получить, а то я что-то делаю, но не уверен в том, что я правильно делаю.
...
Рейтинг: 0 / 0
18.10.2012, 18:35
    #38004815
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
И еще вопрос, вот этот текст:
Мящсяти Эянжяви, Щейран ханым Дцнбцли, Ашыг Пяри иля бярабяр Хуршидбану Натяван да Азярбайжан ядябиййаты тарихиндя юзцнямяхсус хидмятляри олмуш гадын шаирляримиздяндир. имеет какой-то смысл в AZ(кир) или нет?
...
Рейтинг: 0 / 0
18.10.2012, 18:38
    #38004821
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
прошу Вас просмотреть пример

если Вы сейчас удалите из системы те шрифты которые я Вам отослал
то в левом столбце таблицы будут иероглифы и кириллический текст а в правом всё сохраниться неизменно

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
18.10.2012, 18:40
    #38004826
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Уважаемый Shocker.Pro,
Вы кажется не загрузили те шрифты которые были в папке поэтому текст так и отражается

прошу Вас просмотреть второй пример я думаю Вы увидите как необходимо получить

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
18.10.2012, 18:53
    #38004836
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
да не, загрузил, разобрался

в общем надо просто заменить (Ctrl+H) одну букву (скопировав ее из левой ячейки) на ту же букву, (скопировав ее из правой ячейки). И так для всего алфавита. Потом в левой ячейке поставить любой юникодовый шрифт и выбрать язык az(латиница). По крайней мере я так проделал и у меня получилось нужное (не для всех букв, разумеется).
...
Рейтинг: 0 / 0
18.10.2012, 18:55
    #38004842
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
я пробовал так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Sub replika()
'
' replika Ìàêðîñ
' Ìàêðîñ çàïèñàí 12.10.2012 Namik
'

Dim azlatrn, unikodrn

azlatrn = Array("À", "à", "Á", "á", "Æ", "æ", "×", "÷", "Ä", "ä", "Å", " å", "ß", "ÿ", "Ô", "ô", "Ý", "ý", "Ü", "ü", "Ù", " ù", "Õ", " õ", "Û", "û", "È", "è", "Ú", "ú", "Ê", " ê", "Ã", "ã", "Ë", " ë", "Ì", " ì", "Í", " í", "Î", " î", "Þ", " þ", "Ï", " ï", "Ð", " ð", "Ñ", " ñ", "Ø", " ø", "Ò", " ò", "Ó", " ó", "Ö", " ö", "Â", " â", "É", " é", "Ç", " ç")

unikodrn = Array("A", " a", "B", "b", "C", " c", ChrW(199), ChrW(231), "D", " d", "E", " e", ChrW(399), ChrW(601), "F", " f", "G", " g", ChrW(286), ChrW(287), "H", "h", "X", " x", "I", ChrW(305), ChrW(304), " i", "J", " j", "K", "k", "Q", "q", "L", "l", "M", "m", "N", " n", "O", " o", ChrW(214), ChrW(246), "P", " p", "R", "r", "S", "s", ChrW(350), ChrW(351), "T", "t", "U", "u", ChrW(220), ChrW(252), "V", " v", "Y", "y", "Z", "z")

 Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    
       
    For i = 0 To 63
    
    
    With Selection.Find
        .Text = azlatrn(i)
        .Replacement.Text = unikodrn(i)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

    Next
    MsgBox "Ok"
End Sub



Однако когда я удалял шрифты
всё было по по прежнему (не читабельно)

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
18.10.2012, 18:57
    #38004846
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Это же можно сделать и программно, составив таблицу замен с ASCII на юникод, к пример в данном случае "ш" заменяется на ChrW(351). Но я не помню вашу подкованность в программировании, сможете ли вы создать цикл по таблице замен, а также цикл перебора файлов (он, как я понимаю, тоже нужен)
...
Рейтинг: 0 / 0
18.10.2012, 18:59
    #38004849
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Пока отвечал, вы написали, ща проверю ваш вариант
...
Рейтинг: 0 / 0
18.10.2012, 19:02
    #38004854
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
перебор Файла - Вы имеете ввиду чтобы он открывал файл проверял шрифт ?
если да

то мы сами будет конвертировать нужный файл

авторсоставив таблицу замен с ASCII на юникод

А вот то что я пробовал -это оно или Вы имеете ввиду что то другое ?

если можно - один пример замены, на одну букву а дальше я сам постараюсь разобраться

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
18.10.2012, 19:11
    #38004864
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Namikперебор Файла - Вы имеете ввиду чтобы он открывал файл проверял шрифт ?я сказал "перебор файлов" - ну то есть открыть все файлы, выполнить в них этот макрос, заменить шрифт, сохранить и закрыть, но это отдельная песня.

Макрос ваш правильный, но только он не делает ни одной замены букв (кстати, что вы его сразу-то не выложили, вы ж не первый день на форуме). Просто конструкцию " 240;" по крайней мере мой 2003-й не понимает.
А вот так:
Код: vbnet
1.
2.
3.
4.
azlatrn = Array(192, 224, 193, 225, 198, 230, 215, 247, 196, 228, 197, 229, 223, 255, 212, 244, _
221, 253, 220, 252, 217, 249, 213, 245, 219, 251, 200, 232, 218, 250, 202, 234, 195, 227, 203, _
235, 204, 236, 205, 237, 206, 238, 222, 254, 207, 239, 208, 240, 209, 241, 216, 248, 210, 242, _
211, 243, 214, 246, 194, 226, 201, 233, 199, 231)

и так
Код: vbnet
1.
.Text = Chr(azlatrn(i))

получилось
...
Рейтинг: 0 / 0
18.10.2012, 19:13
    #38004867
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Только у вас в массиве unikodrn почему-то лишние пробелы есть, из-за них текст немного коцается.
...
Рейтинг: 0 / 0
18.10.2012, 19:19
    #38004873
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Shocker.Pro, на счет выложить свой пример - это Вы правы я забыл об этом

все работает
лишние пробелы я уберу

Дай Вам Бог всего

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
18.10.2012, 19:22
    #38004874
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Да, там не помешает
Код: vbnet
1.
Application.ScreenUpdating = False

в начале макроса и
Код: vbnet
1.
Application.ScreenUpdating = True

в конце, чтобы на экране ничего не мелькало
...
Рейтинг: 0 / 0
18.10.2012, 19:23
    #38004875
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Спасибо Вам большое

Благодарю Вас
...
Рейтинг: 0 / 0
18.10.2012, 19:39
    #38004890
Namik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB конвертер шрифта
Вот рабочий вариант вопроса
может кому пригодиться

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Sub replika()
'
' replika Ìàêðîñ
' Ìàêðîñ çàïèñàí 12.10.2012 Namik
'
Application.ScreenUpdating = False

Dim azlatrn, unikodrn

azlatrn = Array(192, 224, 193, 225, 198, 230, 215, 247, 196, 228, 197, 229, 223, 255, 212, 244, 221, 253, 220, 252, 217, 249, 213, 245, 219, 251, 200, 232, _
218, 250, 202, 234, 195, 227, 203, 235, 204, 236, 205, 237, 206, 238, 222, 254, 207, 239, 208, 240, 209, 241, 216, 248, 210, 242, 211, 243, 214, 246, 194, 226, 201, _
233, 199, 231)

unikodrn = Array("A", "a", "B", "b", "C", "c", ChrW(199), ChrW(231), "D", "d", "E", "e", ChrW(399), ChrW(601), "F", "f", "G", "g", ChrW(286), ChrW(287), "H", "h", "X", "x", "I", ChrW(305), ChrW(304), "i", "J", "j", "K", "k", "Q", "q", "L", "l", "M", "m", "N", "n", "O", "o", ChrW(214), ChrW(246), "P", "p", "R", "r", "S", "s", ChrW(350), ChrW(351), "T", "t", "U", "u", ChrW(220), ChrW(252), "V", "v", "Y", "y", "Z", "z")

 Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    
       
    For i = 0 To 63
    
    
    With Selection.Find
        .Text = Chr(azlatrn(i))
        .Replacement.Text = unikodrn(i)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

    Next
    
  Application.ScreenUpdating = True
    MsgBox "Ok"
End Sub



спасибо Shocker.Pro

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB конвертер шрифта / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]