dg333
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Сохранил в нём rtf документ, потом им же открываю - крякозяблы | Либо, как уже тут сказали, проблемы со шрифтами (скорее всего, их просто нет), либо неверно указан язык. Чтоб не париться слишком сильно проще прогнать макросик. Например, такой (есть и другие варианты): Код: Sub MacroENMK() ' ' Macro 02.06.2004 by Georgi Kozinakov, Skopje ' Zabraneto e menuvanje na programot, kako i preprodavanje ' bez znaenje i odobruvanje na avtorot ' Dim oDocument As Object, oSelections As Object, oSel As Object, oText As Object Dim oCursor As Object, oVCursor As Object Dim alpha, omega, mySelection as Object Dim snot as string, tekst as string Dim unimk(1 To 63) As Integer Dim enkod, odg As Integer Dim k, dolz As Long Dim sekundi as long dolz = 0 ' translacija na en za -63, a mk e orig unimk(1) = &H416 unimk(2) = &H410 unimk(3) = &H411 unimk(4) = &H426 unimk(5) = &H414 unimk(6) = &H415 unimk(7) = &H424 unimk(8) = &H413 unimk(9) = &H425 unimk(10) = &H418 unimk(11) = &H408 unimk(12) = &H41A unimk(13) = &H41B unimk(14) = &H41C unimk(15) = &H41D unimk(16) = &H41E unimk(17) = &H41F unimk(18) = &H409 unimk(19) = &H420 unimk(20) = &H421 unimk(21) = &H422 unimk(22) = &H423 unimk(23) = &H412 unimk(24) = &H40A unimk(25) = &H40F unimk(26) = &H405 unimk(27) = &H417 unimk(28) = &H428 unimk(29) = &H403 unimk(30) = &H40C unimk(31) = &H427 unimk(32) = &H5F unimk(33) = &H436 unimk(34) = &H430 unimk(35) = &H431 unimk(36) = &H446 unimk(37) = &H434 unimk(38) = &H435 unimk(39) = &H444 unimk(40) = &H433 unimk(41) = &H445 unimk(42) = &H438 unimk(43) = &H458 unimk(44) = &H43A unimk(45) = &H43B unimk(46) = &H43C unimk(47) = &H43D unimk(48) = &H43E unimk(49) = &H43F unimk(50) = &H459 unimk(51) = &H440 unimk(52) = &H441 unimk(53) = &H442 unimk(54) = &H443 unimk(55) = &H432 unimk(56) = &H45A unimk(57) = &H45F unimk(58) = &H455 unimk(59) = &H437 unimk(60) = &H448 unimk(61) = &H453 unimk(62) = &H45C unimk(63) = &H447 ' 'Dim aLocale As New com.sun.star.lang.Locale ' aLocale.Language = "mk" ' aLocale.Country = "MK" ' oDocument=thiscomponent oText = oDocument.Text '' za cel dokument ''oCursor = oDocument.Text.createTextCursor ''oCursor.gotostart(false) ''oCursor.gotoend(true) ' ' za selektiran tekst, hilite oVCursor = oDocument.currentcontroller.getViewCursor() snot=oVCursor.getString() alpha=oVCursor.getStart() omega=oVCursor.getEnd() If len(snot)>0 Then ' ima selektirano: go zemame toa mySelection = oText.createTextCursorByRange(alpha) mySelection.goToRange(omega,TRUE) end if if len(snot) > 0 then tekst=mySelection.getString() end if 'oCursor.CharLocale = aLocale 'Msgbox "uspesno makedonizirano" ' '' MsgBox "Си избрал за менување во МК: " & Chr(13) & ocursor.string ' MsgBox "Си избрал за менување во МК: " & Chr(13) & tekst '' dolz = len(ocursor.string) dolz = len(snot) beep odg = MsgBox("Број на знаци за конверзија: " & dolz & Chr(13) & Chr(13) _ & "Кликни на Yes за да се изврши кодна конверзија на " & Chr(13) _ & "текстот што си го селектирал (Внимание! Не селектирај " & Chr(13) _ & "табели, дијаграми, слики ... САМО ТЕКСТ. Исто така НЕ " & Chr(13) _ & "СЕЛЕКТИРАЈ одеднаш повеќе од 65500 знаци. (ова се " & Chr(13) _ & "ограничувања во OpenOffice 1.1.1) " & Chr(13) _ & "Оваа верзија е наменета за брзи конверзии на поголеми" & Chr(13) _ & "текстови и затоа по ""default"" прекодира во Times New Roman " & Chr(13) _ & "фонт и МК unicode кодирање, а вие потоа по желба " & Chr(13) _ & "можете да го замените со сите системски фонтови " & Chr(13) _ & "(Windows/Linux...) наменети за МК кодните страни. " & Chr(13) _ & "Забелешка: во оваа верзија се прекодира: " & Chr(13) _ & "[=Ш ]=Ќ \=Ѓ ^=Ч @=Ж {=ш }=ќ |=ѓ ~=ч `=ж " & Chr(13) _ & "Пребарувањето, сортирањето и др. операции со МК кодирање " & Chr(13) _ & "се многу ""понормални"" од досегашните ASCII симулации. " & Chr(13) _ & "Овој програм го користите ""како што е"" и авторот не " & Chr(13) _ & "одговара за евентуалните штети сторени на вашите податоци. " & Chr(13) & Chr(13) _ & "Автор: Георги Козинаков, Скопје - Македонија " & Chr(13) _ & "e-mail gk@mt.net.mk, тел.2734-637 моб.075 406-097 " & Chr(13) _ & "Цена: US$2.95 по компјутер. Бесплатно за непрофитни фирми." & Chr(13) _ & "························································ " & Chr(13), _ 292, "«ENtoMK conversion» ©Georgi Kozinakov, Skopje") If odg = 6 and dolz > 0 Then ' vrsime konverzija ' tekst = ocursor.string ' ocursor.charfontname = "Arial" oVCursor.charfontname = "Times New Roman" sekundi = Timer For k = 1 To dolz char = Mid(tekst, k, 1) enkod = Asc(char) ' MsgBox "знак = " & char & " = " & enkod If enkod > 63 And enkod < 127 Then ' mkchar = Chr(unimk(enkod - 63)) Mid(tekst, k, 1, Chr(unimk(enkod - 63))) ' MsgBox "MK знак = " & mkchar & " = " & unimk(enkod - 63) End If Next k ' go vrakame prekodiranoto ' ocursor.string = tekst mySelection.setstring(tekst) sekundi = Timer - sekundi beep MsgBox "Готово. (" & sekundi & " секунди)" Else MsgBox "Не си избрал конверзија на текстот или си селектирал над 65500 знаци. Чао!" End If End Sub | Если не помогло, то проблема наверняка в шрифтах. Добавлено: Пардон, кажется, не тот код запостил. Вот такой: Код: REM ***** Recode from cp1252 to cp1251 for Word files without language set. Author Dmitry G. Mastrukov, 2002 ***** REM ***** GPL lisension Dim mCP1252(123) As String Dim mCP1251(123) As String Sub Init mCP1252() = Array("€","‚","ƒ","„","…","†","‡","ˆ","‰","Š","‹","Œ","Ž", _ "‘","","“","”","•","–","—","™","š","›","œ","?","ž", _ "Ÿ"," ","¡","¢","£","¤","¥","¦","§","¨","©","ª","«", _ "¬","","®","¯","°","±","²","³","´","µ","¶","·","¸", _ "¹","º","»","¼","½","¾","¿","À","Á","Â","Ã","Ä","Å", _ "Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò", _ "Ó","Ô","Õ","Ö","×","Ø","Ù","Ú","Û","Ü","Ý","Þ","ß", _ "à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì", _ "í","î","ï","ð","ñ","ò","ó","ô","õ","ö","÷","ø","ù", _ "ú","û","ü","ý","þ","ÿ") mCP1251() = Array("Ђ","‚","ѓ","„","…","†","‡","€","‰","Љ","‹","Њ","Ћ", _ "‘","","“","”","•","–","—","™","љ","›","њ","ќ","ћ", _ "џ"," ","Ў","ў","Ј","¤","Ґ","¦","§","Ё","©","Є","«", _ "¬","","®","Ї","°","±","І","і","ґ","µ","¶","·","ё", _ "№","є","»","ј","Ѕ","ѕ","ї","А","Б","В","Г","Д","Е", _ "Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т", _ "У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я", _ "а","б","в","г","д","е","ж","з","и","й","к","л","м", _ "н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ", _ "ъ","ы","ь","э","ю","я") End Sub Sub RecodeAll Dim n As Long Dim oDocument As Object Dim oReplace As Object Init() oDocument = ThisComponent oReplace = oDocument.createReplaceDescriptor For n = lbound(mCP1252()) To ubound(mCP1252()) oReplace.SearchString = mCP1252(n) oReplace.ReplaceString = mCP1251(n) oReplace.SearchCaseSensitive = TRUE oDocument.replaceAll(oReplace) Next n End Sub | Добавлено: <здесь должно быть матерное ругательство> ! Из-за того, что на форуме уникод не поддерживается, невозможно корректно отобразить код . Что делать, не знаю, . |