konvertirane na tekst..

2 отговора 84 прегледа
#1

konvertirane na tekst..

Kak moga da konvertiram edin tekst na bylgarski , kym tekst napisan s angliiski bukvi???

primerno:
клавиатура -> klaviatura

blagodarq!

Отговор
в отговор на crcc #2

Re: konvertirane na tekst..

Ами, най-добре ще е да си направиш и таблица за заместванията. После всичко опира до един цикъл.

Например двумерен масив от Х,2 елемента върши чудесна работа.

Съдържание на масива:
1. A, А
2. B, Б
3. C, Ц
4. D, Д
...
и т.н. докато изредиш всички букви. Като разбира се не забравяш, че някои букви от българската азбука нямат точна транслитерация в латинската, и се налага ползването на два, или дори три знака при транслирането.

Ето така:
54. sh, ш
55. sht, щ

като тези редове после трябва да ги качиш най-отгоре в масива. Т.е. да го сортираш по дължина на буквите. Тези, които са с три знака - да са най-горе, после тези с по два, и след тях каквото остане.

Този масив го правиш еднократно, и дали ще си пишеш модул за поправка на масива - си е лично предпочитание. Аз бих написал.

Конвертирането е въпрос, както казахме - на един цикъл:

'Кирилица към латиница
Dim intCount As Long, intNum As Long
intNum = UBound(strMasiv)

For intCount = 0 To intNum Step 1
strText = Replace(strText, strMasiv(intCount, 2), strMasiv(intCount, 1))
Next intCount



Респективно, за да конвертираш от латиница към кирилица, трябва да промениш местата на заместване в Replace:
strText = Replace(strText, strMasiv(intCount, 1), strMasiv(intCount, 2))

...

Изобщо, варианти много, няма как да се опишат накратко тонове алгоритми, пък и работа върши поне един от тях. Не зная какво приложение ще има това в програмата ти, затова ти давам най-обикновения за мен пример, който ползвам.

Успех.


Щирлиц
Отговор
в отговор на crcc #3

Ето макрос за Ексел

понеже не е ясно къде точно искаш да ти става конверсията:


Sub Transfrom()
'
' Keyboard Shortcut: Ctrl+t
'
Selection.Replace What:="у", Replacement:="U", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="е", Replacement:="E", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="и", Replacement:="I", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="ш", Replacement:="SH", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="щ", Replacement:="SHT", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="к", Replacement:="K", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="с", Replacement:="S", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="д", Replacement:="D", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="З", Replacement:="Z", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

Selection.Replace What:="Ц", Replacement:="TS", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Ь", Replacement:="Е", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Я", Replacement:="YA", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="YA", Replacement:="IA", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="А", Replacement:="A", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="О", Replacement:="O", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Ж", Replacement:="J", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Г", Replacement:="G", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Т", Replacement:="T", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Н", Replacement:="N", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="В", Replacement:="V", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="М", Replacement:="M", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

Selection.Replace What:="Ч", Replacement:="TCH", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Ю", Replacement:="IOU", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Й", Replacement:="AI", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Ъ", Replacement:="E", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Ф", Replacement:="F", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Х", Replacement:="H", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="П", Replacement:="P", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Р", Replacement:="R", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Л", Replacement:="L", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="Б", Replacement:="B", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
End Sub



Отговор