Էսօր word-ի համար գրածս մակրոյում մի քիչ փոփոխություն արեցի, որ ե-ի ու չակերտի խնդիրը լուծի։
Էս տարբերակում նայում ա հարևան սիմվոլներին, ու ըստ դրանց որոշում կոդավորումն ու սիմվոլը։
Կոդ:
Public najord As String
Public naxord As String
Sub Unicode2ANSI()
'
' Unicode 2 ANSI
' Created by †Ateist†
'
ss = Selection.Start
se = Selection.End
backup = Selection
If se - ss < 0 Then End
For i = ss To se - 1
'naxord tar@
If i = ss Then naxord = " " Else naxord = Mid(backup, i - ss, 1)
'hajord tar@
If i = se - 1 Then hajord = " " Else hajord = Mid(backup, i - ss + 2, 1)
Selection.Start = i
Selection.End = i + 1
tar = Selection
If AscW(tar) = 164 Or AscW(tar) = 165 Then GoTo 10
If AscW(tar) = 171 Then Selection = Chr(167): GoTo 10
If AscW(tar) = 187 Then Call unicode_stugum(naxord, hajord): GoTo 10 ' Pakogh chakerti Yev YE tari problem
If AscW(tar) = 1415 Then Selection = ChrW(168) 'ChrW(187) + ChrW(245): se = se + 1 'yev tar@
If AscW(tar) < 1329 Or AscW(tar) > 1418 Then GoTo 10
If AscW(tar) < 1367 Then Selection = ChrW(176 + (AscW(tar) - 1328) * 2)
If AscW(tar) > 1366 And AscW(tar) < 1415 Then Selection = ChrW(177 + (AscW(tar) - 1376) * 2)
If AscW(tar) = 1374 Then Selection = ChrW(177) ' harcakan nshan
10: Next i
Selection.Start = ss
Selection.End = se
Selection.Font.Name = "Arial armenian"
End Sub
Sub ANSI2Unicode()
'
' Normal2Unicode
' Created by †Ateist†
'
ss = Selection.Start
se = Selection.End
backup = Selection
If se - ss < 0 Then End
For i = ss To se - 1
'naxord tar@
If i - ss = 0 Then naxord = " " Else naxord = Mid(backup, i - ss, 1)
'hajord tar@
If i = se - 1 Then hajord = " " Else hajord = Mid(backup, i - ss + 2, 1)
Selection.Start = i
Selection.End = i + 1
tar = Selection
If AscW(tar) = 164 Or AscW(tar) = 165 Then GoTo 10
If AscW(tar) = 167 Then Selection = Chr(171): GoTo 10
If AscW(tar) = 166 Then Selection = Chr(187): GoTo 10
If AscW(tar) = 187 Then Call ansi_stugum(naxord, hajord): GoTo 10 ' Pakogh chakerti Yev YE tari problem
If AscW(tar) = 168 Then Selection = ChrW(1415) 'yev tar@
If AscW(tar) < 178 Or AscW(tar) > 253 Then GoTo 10
If AscW(tar) / 2 = AscW(tar) \ 2 Then Selection = ChrW(1328 + (AscW(tar) - 176) / 2)
If AscW(tar) / 2 <> AscW(tar) \ 2 Then Selection = ChrW(1376 + (AscW(tar) - 177) / 2)
If AscW(tar) = 177 Then Selection = ChrW(1374) ' harcakan nshan
10: Next i
Selection.Start = ss
Selection.End = se
Selection.Font.Name = "arian amu"
End Sub
Sub unicode_stugum(ByVal naxord As String, ByVal hajord As String)
ard = ChrW(166)
ansi = False
If AscW(naxord) > 176 And AscW(naxord) < 254 Then ansi = True
If AscW(naxord) > 165 And AscW(naxord) < 169 Then ascii = True
If AscW(hajord) > 176 And AscW(hajord) < 254 Then ascii = True
If AscW(hajord) > 165 And AscW(hajord) < 169 Then ascii = True
If ansi Then ard = ChrW(187)
Selection = ard
End Sub
Sub ansi_stugum(ByVal naxord As String, ByVal hajord As String)
ard = ChrW(1381)
unic = False
If AscW(naxord) > 1328 And AscW(naxord) < 1423 Then unic = True
If AscW(hajord) > 1328 And AscW(hajord) < 1423 Then unic = True
If unic Then ard = ChrW(187)
Selection = ard
End Sub
Ես ծրագրավորող չեմ, կարծում եմ, որ նույնը կարելի ա ավելի էֆեկտիվ գրել։ Էս տարբերակով իմ կոմպի վրա 25 էջանոց ֆայլը փոխակերպեց 22 վարկյանում։
Հ.Գ.
Ոչ բոլոր անսի կետադրական նշաններն եմ փոխել յունիկոդի։ Օրինակ. միջակետը, վերջակետը դեռ էդքան տարածում չունեն։ Սկի Word-ը հայկական վերջակետից հետո (։) չի ֆայմում հաջորդ տառը մեծատառ դարձնի։
Էջանիշներ