konvertirane na tekst..
2 отговора
84 прегледа
konvertirane na tekst..
Kak moga da konvertiram edin tekst na bylgarski , kym tekst napisan s angliiski bukvi???
primerno:
клавиатура -> klaviatura
blagodarq!
primerno:
клавиатура -> klaviatura
blagodarq!
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))
...
Изобщо, варианти много, няма как да се опишат накратко тонове алгоритми, пък и работа върши поне един от тях. Не зная какво приложение ще има това в програмата ти, затова ти давам най-обикновения за мен пример, който ползвам.
Успех.
Щирлиц
Например двумерен масив от Х,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))
...
Изобщо, варианти много, няма как да се опишат накратко тонове алгоритми, пък и работа върши поне един от тях. Не зная какво приложение ще има това в програмата ти, затова ти давам най-обикновения за мен пример, който ползвам.
Успех.
Щирлиц
Ето макрос за Ексел
понеже не е ясно къде точно искаш да ти става конверсията:
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