Function UserNameEng(UserNameRu As String) As String
Dim i As Integer, t As String
UserNameEng = ""
For i = 1 To Len(UserNameRu)
Select Case Mid(UserNameRu, i, 1)
Case "A"
t = "A"
Case "a"
t = "a"
Case "Б"
t = "B"
Case "б"
t = "b"
....
Case "Ч"
t = "Ch"
Case "ч"
t = "ch"
....
Case " "
t = "_"
Else
t = "_"
End Select
UserNameEng = UserNameEng & t
Next i
End Function
Русский ---> Russkii convertor and Password generator ???
У меня есть ФИО какого либо чела. Мне надо сделать из него username & password. Думаю надо переконвертить его в латиницу и сгенерить пасворд. help me pls!
Цитата:
Originally posted by geo
У меня есть ФИО какого либо чела. Мне надо сделать из него username & password. Думаю надо переконвертить его в латиницу и сгенерить пасворд. help me pls!
У меня есть ФИО какого либо чела. Мне надо сделать из него username & password. Думаю надо переконвертить его в латиницу и сгенерить пасворд. help me pls!
Честно говоря, писать эту программу целиком ломает. Примерно она у меня выглядела бы так:
Код:
Можно в конце еще вставить
UserNameEng = Left(UserName,10)
чтоб не слишком длинные получались.
А пароли можно, например, так:
Код:
Function Passw() As String
Dim i As Integer
Passw = ""
For i = 1 To 8
Passw = Passw & Chr(97 + Rnd * 26)
Next i
End Function
Dim i As Integer
Passw = ""
For i = 1 To 8
Passw = Passw & Chr(97 + Rnd * 26)
Next i
End Function
смотря, что ты от них хочешь...
Если что непонятно - спрашивай.
Честно говоря, писать эту программу целиком ломает. Примерно она у меня выглядела бы так:
Код:
Function UserNameEng(UserNameRu As String) As String
Dim i As Integer, t As String
UserNameEng = ""
For i = 1 To Len(UserNameRu)
Select Case Mid(UserNameRu, i, 1)
Case "A"
t = "A"
Case "a"
t = "a"
Case "Б"
t = "B"
Case "б"
t = "b"
....
Case "Ч"
t = "Ch"
Case "ч"
t = "ch"
....
Case " "
t = "_"
Else
t = "_"
End Select
UserNameEng = UserNameEng & t
Next i
End Function
Dim i As Integer, t As String
UserNameEng = ""
For i = 1 To Len(UserNameRu)
Select Case Mid(UserNameRu, i, 1)
Case "A"
t = "A"
Case "a"
t = "a"
Case "Б"
t = "B"
Case "б"
t = "b"
....
Case "Ч"
t = "Ch"
Case "ч"
t = "ch"
....
Case " "
t = "_"
Else
t = "_"
End Select
UserNameEng = UserNameEng & t
Next i
End Function
Проще case-технологию заменить двумя строковыми переменными и функцией InStr.
Function UserNameEng(UserNameRu As String) As String
Dim i As Integer, t As String
UserNameEng = ""
rus$ = "ÀÁÂ...Þßàáâ...þÿ"
'--------- на одну нашу может быть две чужих букв
lat$ = "A B V . . . U JA a b v . . . u ja "
'
For i = 1 To Len(UserNameRu)
c$ = Mid(UserNameRu, i, 1)
npos = InStr(1, rus$, c$)
If npos > 0 Then
t = Trim(Mid(lat$, npos * 2 - 1, 2))
Else
t = c$ '<--------- если не найден аналог
End If
UserNameEng = UserNameEng & t
Next i
End Function
надо читать:
rus$="АБВ...ЮЯабв...юя"
Цитата:
Originally posted by gacol
Пардон! Не закодировалось.:D
надо читать:
rus$="АБВ...ЮЯабв...юя"
Пардон! Не закодировалось.:D
надо читать:
rus$="АБВ...ЮЯабв...юя"
Да, Instr у меня из головы вылетел. Так конечно лучше. В принципе, "щ" четырьмя буквами кодируется обычно. Можно даже при желании и это обойти. Например, такую строку взять:
".... ФF фf ... ШSh шsh ..." и брать в качетсве кода подстроку от Instr+1 до следующего пробела.