PDA

Դիտել ողջ տարբերակը : Ansi to Unicode



Marat
11.11.2008, 14:11
Բարի լույս,

ANSI to Unicode կովերտացիայի դեպքում առկա ծրագրերում (օրինակ՝ Armenian Unicode Converter ) հիմնականում ճիշտ չի փոխակերվում ANSI-ում եղած չակերտները «» Unicode-ում դրա փոխարեն հայտնվում է ստորակետ կամ փոքրատառ ե, խնդիրներ կան միջակետը հետ և այլն։
Որոշ ծրագրերում կան կովերտացիայի MAP-ը օգտագործողի կողմից փոխելու հնարավորություն (օրինակ KDWIN, սակայն այն սկզբունքորեն չեմ օգտագործում քանի որ հնարավոր չէ անջատել լեզուները)։
Կհուշեք արդյոք այլ ծրագրեր, որտեղ ինչպես Armenian Unicode Converter -ում կոնվերտացիան կատարվում է առանձին պատուհանում, (Word-ից դուրս), սակայն ունի նաև կոնվերտացիայի MAP-ը փոխելու հնարավորություն։
Կամ ինչպես KDWIN-ից հանել լեզուները ու թողնել միայն կոնվերտացիայի հնարավորությունը։
Շնորհակալ եմ

Xelgen
13.11.2008, 00:19
Իսկ ինչնե՞ք ուզում փոխակերպել։
Եթե ՄՍ Օֆիսի դոկ/քլս-ները, բավականին հաջող են Թարումենի մակորսները, կարող եք նաև թուլբարի վրա հանել, որ ձեռքի տակ լինեն։
http://fonts.tarumian.am/index_programs.php

Աթեիստ
13.11.2008, 15:09
Անցյալ գիշեր եմ գրել:



Sub Normal2Unicode()
'
' Normal2Unicode
' Created by A†eis†
'
Ss = Selection.Start
Se = Selection.End
If Se - Ss < 0 Then End
For i = Ss To Se - 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)
If AscW(tar) = 166 Then Selection = chr(187): GoTo 10
If tar = chr(187) Then Call unicode_stugum: GoTo 10 ' Pakogh chakerti Yev YE tari problem
If AscW(tar) = 168 Then Selection = ChrW(1415) 'yev tar@
If AscW(tar) = 177 Then Selection = ChrW(1374) ' harcakan nshan
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)

10: Next i
Selection.Start = Ss
Selection.End = Se
Selection.Font.Name = "tahoma armenian"
End Sub

Sub unicode_stugum()
'
' Normal2Unicode
' Created by A†eis†
' Yete hajord tar@ ASCII -e nshanakum e da YE tarn e
'
ascii = False
HinSel = Selection.Start
Selection.Start = HinSel + 1
Selection.End = HinSel + 2
If AscW(Selection) < 1000 And AscW(Selection) <> 32 And AscW(Selection) <> 13 Then ascii = True
Selection.Start = HinSel
Selection.End = HinSel + 1
If ascii Then Selection = ChrW(1381)
End Sub


Էականորեն տարբերվում է Թարումյանի տարբերակից և մոտեցումով և ծավալով:
Չակերտների հարցը լուծված է (մասամբ), միջակետը չեմ ստուգել:
Սպասում եմ Ձեր կարծիքներին և գտած վրիպակներին:

Marat
13.11.2008, 15:53
Շնորհակալ եմ արձագանքելու համար,
սակայն ամբողջ խնդիրը նրանում էր, որ WORD-ում աշխատելը իմ դեպքում այդքան էլ հարմար չէր։
Անհրաժեշտ էր առանձին ու անկախ պատուհանով աշխատող մի ծրագիր, որտեղ պետք կլիներ ասենք Quark-ից բերել տեքստերն ու փոխակերպել։
Հարգանքով՝
Մարատ

Աթեիստ
13.11.2008, 16:21
Շնորհակալ եմ արձագանքելու համար,
սակայն ամբողջ խնդիրը նրանում էր, որ WORD-ում աշխատելը իմ դեպքում այդքան էլ հարմար չէր։
Անհրաժեշտ էր առանձին ու անկախ պատուհանով աշխատող մի ծրագիր, որտեղ պետք կլիներ ասենք Quark-ից բերել տեքստերն ու փոխակերպել։
Հարգանքով՝
Մարատ

Կարող եմ և նման բան գրել (նախորոք նշիր թե սրա (http://network.am/More/ArmUnicodeConverter) ինչը դուրդ չի գալիս ), բայց Word-ի տարբերակն այնքանով է հարմար, որ պահում է տեքստի ֆորմատը:

Marat
13.11.2008, 19:26
Կարող եմ և նման բան գրել (նախորոք նշիր թե սրա (http://network.am/More/ArmUnicodeConverter) ինչը դուրդ չի գալիս ), բայց Word-ի տարբերակն այնքանով է հարմար, որ պահում է տեքստի ֆորմատը:

Այդ ծրագրում, ինչպես արդեն ասվել է, դեպի Unicode ճիշտ չեն փոխակերպվում որոշ տառեր ու նշաններ (չակերտ, միջակետ) և այլն։ Բացի այդ, հայկական ANSI տառատեսակները նույնպես միասնական ստանդարտով չեն, կան որոնք ունեն «և», կան, որոնք չունեն, հետո տարբեր են -, բազմակետի, միջակետի և այլն տեղերը։ Տիպիկ համամետություն Թարումյան ArialAM-ը ասենք DALLAK կամ ArialArmenian, TimesArmenian-ի հետ։ Ինքներդ կհամոզվեք։ Հիմա եթե լինի փոխակերպման MAP-ը ըստ օգտվողի հայեցողության փոխելու հնարավորություն, ապա կախված տառատեսակից նա ինքը կարող է շտկել բոլոր թերությունները։
Իսկ կոնկրետ իմ դեպքում, կա հատուկ պատվիրված ANSI տառատեսակ, որը շատ ավելի խառն է քան վերոնշյալները։ Իսկ անհրաժեշտ է գոնե 95%-անոց ճիշտ դեպի Unicode փոխակերպում։ Կան դեպքեր, երբ Word-ի ֆորմատը էլ կարևոր չէ, ավելի հեշտ է փոխակերպել ու հետո ֆորմատավորել։
Հուսամ փաստարկները բավարար համոզիչ էին «Կարող եմ և նման բան գրել»-ը նախաձեռնելու համար։ Ես պատրաստ եմ աջակցել ինչով կկարողանամ։
Հարգանքով
Մարատ

Marat
13.11.2008, 19:36
Անցյալ գիշեր եմ գրել:



Sub Normal2Unicode()
'
' Normal2Unicode
' Created by A†eis†
'
Ss = Selection.Start
Se = Selection.End
If Se - Ss < 0 Then End
For i = Ss To Se - 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)
If AscW(tar) = 166 Then Selection = chr(187): GoTo 10
If tar = chr(187) Then Call unicode_stugum: GoTo 10 ' Pakogh chakerti Yev YE tari problem
If AscW(tar) = 168 Then Selection = ChrW(1415) 'yev tar@
If AscW(tar) = 177 Then Selection = ChrW(1374) ' harcakan nshan
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)

10: Next i
Selection.Start = Ss
Selection.End = Se
Selection.Font.Name = "tahoma armenian"
End Sub

Sub unicode_stugum()
'
' Normal2Unicode
' Created by A†eis†
' Yete hajord tar@ ASCII -e nshanakum e da YE tarn e
'
ascii = False
HinSel = Selection.Start
Selection.Start = HinSel + 1
Selection.End = HinSel + 2
If AscW(Selection) < 1000 And AscW(Selection) <> 32 And AscW(Selection) <> 13 Then ascii = True
Selection.Start = HinSel
Selection.End = HinSel + 1
If ascii Then Selection = ChrW(1381)
End Sub


Էականորեն տարբերվում է Թարումյանի տարբերակից և մոտեցումով և ծավալով:
Չակերտների հարցը լուծված է (մասամբ), միջակետը չեմ ստուգել:
Սպասում եմ Ձեր կարծիքներին և գտած վրիպակներին:

Բառավերջի ե-ն դարձնում է փակող չակերտ,
ճիշտ չի փոխակերպում հետևյալ նշանները՝
բացականչական նշան, բութ, շեշտ, միջակետ, բազմակետ ենթամնա, բաժանման գծիկ

Egern.net
13.11.2008, 22:21
Բառավերջի ե-ն դարձնում է փակող չակերտ,
ճիշտ չի փոխակերպում հետևյալ նշանները՝
բացականչական նշան, բութ, շեշտ, միջակետ, բազմակետ ենթամնա, բաժանման գծիկ
Մարատ ջան !

Ես Ձեզ PMով բացատրեցի, թե ինչումն է այդ ե-ի պրոբլեմը....

Xelgen
14.11.2008, 03:23
Ոչ մի տարբերակը ասյտեղ բերված չեմ ստուգել, կներեք ժամանակ չկա։
Պարզապես մեկ խնդրանք, մինչև դռայվեր/փոխարկիչ գրելը նայեք պաշտոնական ստանդարտին։
http://www.unicode.org/charts/

Մի կես տարի առաջ մեկ նախագծի համար 10-ից ավելի փոխարկիչ/դռայվեր էի նայում և 10-ից 2-ն էին որ կորրեկտ անում էին դա։ Օրինակ հայերեն վեջակետի փոխարեն լատիներեն երկուկետ էին դնում։ Եթե «էկրանի վրա ամեն ինչ նորմալ է երևում» դա դեռ չի նշանակում, որ ծրագիրը կորրեկտ աշխատում է։ Իսկ երբ անհրաժեշտություն կառաջանա տեսքը մեքենայական անալիզի ենթարկել, սեմանտիկ-վեբում օգտագործել այդ կիսահայերեն-կիսաանգլերեն տեքստը շատ անիմաստ գլխացավանք է առաջացնում։

Xelgen
14.11.2008, 03:35
Մի քիչ էլ «յազվայություն» անեմ՝
Normal2Unicode ետ ARMSCII-ն է նորմա՞լ։ :D

Ինքը հակասում է հենց ASCII ստանդարտին և տառերի մի մասը գնտվում են այնտեղ որտեղ իրավունք չունեն գտվելու՝ համակարգային/ծառայողական նշաններ և այլն։ Նույն հայտնի «գ» տառի խնդիրը։
Եթե օրինակ կարելի է միանշանակ հասկնալ որ մուտքը իրականցվում է ասենք թե կիռիլիկ cp-1251-ով ապա ARMSCII դեպքում դա հնարավոր չի, պետք է հատուկ անալիզի ենթարկել ընդհուպ մինչև փոքր նեյրոնային ցանցեր, որ հասկանաս որ անգլերեն չի հավաքվում տեքստը այլ հայերեն։ :)

Սահակ
14.11.2008, 09:19
Քանի խոսք ա բացվել Յունիկոդ փոխարկիչների մասին, մի բան էլ ես ասեմ։ Հայերեն միջակետը Յունիկոդում U+2024 համարի տակ ա կոդավորված։

Marat
14.11.2008, 10:52
Քանի խոսք ա բացվել Յունիկոդ փոխարկիչների մասին, մի բան էլ ես ասեմ։ Հայերեն միջակետը Յունիկոդում U+2024 համարի տակ ա կոդավորված։

Միջակետը U+2024-ի համար «մտածված է», սակայն դեռ ստանդարդիզացված չէ, ինչքան ես եմ տեղյակ, համենայն դեպս միջազգայնորեն. Յունիկոդ 5.1-ում դեռ հայերեն միջակետն և լատինական վերջակետը համընկնում են, ինչը խնդիրներ է առաջացնում օրինակ Word-ում հայերեն Յունիկոդ տեքստ հավաքելիս, երբ միջակետից հետո ավտոմատ մեծատառ է սարքում, քանի դեռ այդ ֆունկիցան չես անջատել։ Ահա թե ինչու է U+2024-ի տարբերակը մտածված։
Սա արդեն պետական խնդիր է և միայն պետական մակարդակով կարծում եմ կարելի է հետամուտ լինել խնդրի լուծմանը։
Այնուամենայնիվ, դեռ բաց է մնում «նորմալ» կամ «ընդունելի» առանձին պատուհանով փոխարկիչ գտնելու ցանկությունը։

Egern.net
14.11.2008, 17:46
ե-ի հետ կապված.
Սովորական ֆոնտերում (այդ թվում` Յունիկոդ) Latin-1 բաժնում 0xAB կոդին (տասական համակարգում` 171) համապատասխանում է բացվող չակերտը, իսկ 0xBB կոդին (187) փակվող չակերտը: Յունիկոդից ANSI փոխակերպման ժամանակ այդ սիմվոլները (ինչպես ամբողջ Latin-1-ը և ոչ միայն) չեն փոխակերպվում` մնում են նույնը: Իսկ "հայերեն" ֆոնտերում, մասնավորապես ասենք Arial LatArm-ում 0xAB-ին համապատասխանում է ստորակետը, իսկ 0xBB-ին` ե փոքրատառը:

Հիմա Յունիկոդի մասին.
Իմ կոնվերտերը գրելուց ես հիմնվել եմ Arial Unicode ֆոնտի վրա: Այդ ֆոնտում հայերենի բաժնում չակերտները գտնվում են 0x0559 և 0x055A համարների տակ: Էդ պատճառով երբ որ AUC-ում ANSI-ով գրում եք չակերտներ (0xA7 և 0xA6) կոնվերտերը փոխակերպում է 559 և 55A: Եվ հակառակը: Այսինքն` այս ֆոնտով աշխատելուց խնդիրներ չկան:

Խնդիրը կայանում է նրանում, որ Յունիկոդում 559 և 55A կոդերի համար սահմանված են այլ սիմվոլներ` մասնավորապես (http://en.wikipedia.org/wiki/List_of_Unicode_characters#Armenian) Modifier Letter Left Half Ring և Armenian Apostrophe: Այդ պատճառով երբ որ AUC-ով կոնվերտ արված տեքստը նայում եք այլ Յունիկոդ ֆոնտով (օրինակ` Sylfaen կամ ասենք Tahoma Armenian), չակերտների փոխարեն երևում են ապաթարցի նման սիմվոլներ:

Իսկ չակերտներ որպես այդպիսին Յունիկոդի հայերեն բաժնում սահմանված չեն: Հավանաբար նախատեսված է օգտագործել Latin-1-ում գտնվող AB և BB սիմվոլները, որոնք պատահականորեն "վերադրվում են" Հայերեն ANSI ֆոնտերում ստորակետի ու ե տառի հետ...

Սահակ
14.11.2008, 19:26
Միջակետը U+2024-ի համար «մտածված է», սակայն դեռ ստանդարդիզացված չէ, ինչքան ես եմ տեղյակ, համենայն դեպս միջազգայնորեն. Յունիկոդ 5.1-ում դեռ հայերեն միջակետն և լատինական վերջակետը համընկնում են, ինչը խնդիրներ է առաջացնում օրինակ Word-ում հայերեն Յունիկոդ տեքստ հավաքելիս, երբ միջակետից հետո ավտոմատ մեծատառ է սարքում, քանի դեռ այդ ֆունկիցան չես անջատել։ Ահա թե ինչու է U+2024-ի տարբերակը մտածված։
Սա արդեն պետական խնդիր է և միայն պետական մակարդակով կարծում եմ կարելի է հետամուտ լինել խնդրի լուծմանը։
Այնուամենայնիվ, դեռ բաց է մնում «նորմալ» կամ «ընդունելի» առանձին պատուհանով փոխարկիչ գտնելու ցանկությունը։
Մարատ ջան,
U+2024 արդեն վաղուց ընդունված է Յունիկոդի կողմից։
Խնդրեմ կարդա պաշտոնական Յունիկոդ ստանդարդի հայերենին վերաբերվող մասը՝ http://www.unicode.org/versions/Unicode5.0.0/ch07.pdf
Մեջբերում եմ հենց այդ ստանդարտից՝ "A shorter stop functioning like the semicolon is called mijaket; it is represented by U+2024 . one dot leader ."

Սա շատ վաղուց էր ընդունված, և Լինուքսում հայերեն ստեղնաշարը U+2024 է օգտագործում միջակետի համար։

Egern.net
23.11.2008, 15:37
Դրել եմ կոնվերտերի օնլայն տարբերակը` http://egern.net/auc.htm

Կա նաև "օֆլայն" տարբերակ` .hta ֆորմատով :):) http://egern.net/auc.zip

Dragon
28.12.2008, 23:38
Egern.net ArmenianUnicodeConverter-ը դու ես ստեղծել?
Ես 2 տարի ա էդ եմ օգտագործում: :ok

Marat
12.01.2009, 19:21
Դրել եմ կոնվերտերի օնլայն տարբերակը` http://egern.net/auc.htm

Կա նաև "օֆլայն" տարբերակ` .hta ֆորմատով :):) http://egern.net/auc.zip

Ի դեպ, ԼԱՎԱԳՈՒՅՆ ծրագիրը, որը կա այս ոլորտում մինչև այսօր, թե ֆունկիցոնալ առումով, թե հեղինակի՝ խնդիրներին արագ արձագանքելու ու լուծելու ցանկությամբ !!!

osip
14.06.2009, 17:10
Դրել եմ կոնվերտերի օնլայն տարբերակը` http://egern.net/auc.htm

Կա նաև "օֆլայն" տարբերակ` .hta ֆորմատով :):) http://egern.net/auc.zip

Իմ կարծիքով Armenian Text Convertor-ը ավելի նորմալ է փոխակերպում ;)
Կա «և»-ի, չակերթների ու թվերի փոխակերպման հետ կապված խնդիր:

Lion
14.06.2009, 17:27
Բարի լույս,

ANSI to Unicode կովերտացիայի դեպքում առկա ծրագրերում (օրինակ՝ Armenian Unicode Converter ) հիմնականում ճիշտ չի փոխակերվում ANSI-ում եղած չակերտները «» Unicode-ում դրա փոխարեն հայտնվում է ստորակետ կամ փոքրատառ ե, խնդիրներ կան միջակետը հետ և այլն։
Որոշ ծրագրերում կան կովերտացիայի MAP-ը օգտագործողի կողմից փոխելու հնարավորություն (օրինակ KDWIN, սակայն այն սկզբունքորեն չեմ օգտագործում քանի որ հնարավոր չէ անջատել լեզուները)։
Կհուշեք արդյոք այլ ծրագրեր, որտեղ ինչպես Armenian Unicode Converter -ում կոնվերտացիան կատարվում է առանձին պատուհանում, (Word-ից դուրս), սակայն ունի նաև կոնվերտացիայի MAP-ը փոխելու հնարավորություն։
Կամ ինչպես KDWIN-ից հանել լեզուները ու թողնել միայն կոնվերտացիայի հնարավորությունը։
Շնորհակալ եմ

Մի գործնական խորհուրդ տամ. ինքս էլ եմ հաճախ փոխարինում և չակերտների հետ խնդիր եմ ունենում: Վարվում եք այսպես - տեքստը քոպի եք անում մի առանձին վոռդի էջի վրա, հետո ctrl-H-ով բացում եք պատուհանը, քոփի եք անում առաջին չակերտը վերևում, ներքևում էլ - *: Դրանից հետո սեղմում եք Ռեփլաս ալլ կնոպկեն, սաղ առաջին չակերտները դառնում են *: Հետո նույն կերպ աստղիկը փոխում եք սրա «<<» հետ… Նույնն էլ անում եք մյուս չակերտի հետ և հետո հանգիստ փոխում տառատեսակը յունիկոդի:

Հանուման
10.09.2009, 14:13
Armenian Smart Converter –ի նոր տարբերակը կարելի է բեռնել անվճար այստեղից
http://converter.unicode.am/ (http://converter.unicode.am/)
Կարծես թե վատ չի աշխատում։

SDes77
15.10.2009, 17:06
2Egern.net

Չգիտեմ էլ, ոնց շնորհակալություն հայտնեմ :hands

Jazz
28.10.2009, 10:37
Ժողովուրդ ջան word-ում ամեն դեպքում ինչ որ մի ձև ստացվում է, իսկ MS Access-ում ոնց կարելի է կոնվերտացիա անել:

Աթեիստ
19.12.2013, 01:01
Էսօր 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-ը հայկական վերջակետից հետո (։) չի ֆայմում հաջորդ տառը մեծատառ դարձնի։

Վահե-91
19.12.2013, 01:07
Էսօր 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-ը հայկական վերջակետից հետո (։) չի ֆայմում հաջորդ տառը մեծատառ դարձնի։
սաղ հեչ, էն ի՞նչ խաչեր ա Աթեիստի կողքերը, մակրոսի մեջ :scare

Աթեիստ
19.12.2013, 01:10
սաղ հեչ, էն ի՞նչ խաչեր ա Աթեիստի կողքերը, մակրոսի մեջ :scare

Խաչերի մեջ ընկած (քրսիտոնյաներով շրջապատված) աթեիստ ։)
Առաջ սենց էի գրում ..++††Ateist††++.. ()

Բայց էս արդեն լրիվ ուրիշ պատմություն ա։


Մակրոն որ փորձեք, արդյունքների մասին պատմեք, շատ չեմ փորձարկել։