Изменение любого символа в строке

  • Автор темы Adiost
  • Дата начала
A

Adiost

Гость
#1
Имеется переменная, строка, похожая на это: "98b11028-09db-4499-b288-1c6bfa42cb01".
Задача - изменить один, случайный символ (кроме "-") на любой другой. Как такое провернуть?
 
A

Adiost

Гость
#2
Поднимаю тему, т.к. вопрос для меня еще актуален.
 
B

BStudio

Гость
#4
Имеется переменная, строка, похожая на это: "98b11028-09db-4499-b288-1c6bfa42cb01".
Задача - изменить один, случайный символ (кроме "-") на любой другой. Как такое провернуть?
Э-эх! Ща замутим....

[Спустя пару часов]:
Код:
'Это нам пригодится для удобного рандомайза
Public Function GenRndNumber(ByVal Lower%, ByVal Upper%)
Randomize
GenRndNumber = Int((Upper% - Lower% + 1) * Rnd + Lower%)
End Function

'Эта функция будет принимать строку и возвращать изменённую
Private Function OLOLO(ByVal STR$)
'Рандомим, какой символ заменять будем
ONCEMORE:
Dim SymbolNum% = GenRndNumber(0, STR.Length)
Dim MODE% = 1
Dim N$ = "", S$ = ""
'Ахалай-махалай..
N = Microsoft.VisualBasic.Right(STR, SymbolNum)
MODE = GenRndNumber(1, 3)
If N.Length > 1 Then
STR = STR.Replace(N.Remove(0, 1), "")
S = N.Remove(1)
Else : GoTo ONCEMORE
End If
If S = "-" Then GoTo ONCEMORE
Select Case MODE
'Меняем на цифру
Case 1 : OLOLO = STR.Replace(S, Chr(GenRndNumber(Asc("0"), Asc("9")))) & N.Remove(0, 1)
'Меняем на букву верхнего регистра
Case 2 : OLOLO = STR.Replace(S, Chr(GenRndNumber(Asc("A"), Asc("Z")))) & N.Remove(0, 1)
'Меняем на букву нижнего регистра
Case Else : OLOLO = STR.Replace(S, Chr(GenRndNumber(Asc("a"), Asc("z")))) & N.Remove(0, 1)
End Select
End Sub
О-ох... Мучился-мучился. Не знаю, что из этого выйдет, но могу сказать одно: затея - говно.

Кроме того :: Привыкай к своей голове. А если там ничего нет и ты
не можешь с этим смириться, наполняй её книгами. <IMHO>

++
Q: Что это за язык такой у твоего кода?
A: Visual Basic (в MS Visual Studio 2010 должно работать).
 
A

Adiost

Гость
#5
BStudio
О, не совсем то, что я хотел, но под себя без проблем подгоню.
Огромное спасибо!
 
B

BStudio

Гость
#6
:) На здоровье.

Одно мне не нравится на этом форуме, что тут в-основном только советы давать многие горазды.