我想做的是輸入一個二進制字串,隨機修改其中一位,然后隨機修改的這一位字符變成紅色
現在的這種編碼可以實作,但是當字串第一個數變紅的時候也就是
RichTextBox1.SelStart = 0時,再次點擊隨機加錯的時候 這時候全部字串變成紅色
s=RichTextBox1.text
D=len(RichTextBox1.text )
Randomizei = Int((Rnd * D) + 1)
Dim a As String
Dim b As String
Dim c As String
a = Left(RichTextBox1 , i - 1)
b = Right(RichTextBox1 , length - i)
c = Mid(s, i, 1)
If c = 1 Then
c = 0
Else
c = 1
End If
Text2.Text = a & c & b
RichTextBox1.SelStart = i - 1
RichTextBox1.SelLength = 1
RichTextBox1.SelColor = vbRed
uj5u.com熱心網友回復:
有人在么?可以幫忙看看嘛uj5u.com熱心網友回復:
代碼不全吧Randomizei,這個引數在你給你程式段中有什么用?
沒看出來
uj5u.com熱心網友回復:
Public Sub test()
Randomize
Dim L As Long, P As Long
Dim C As Long
With rtfText
P = Int((Rnd * Len(.Text)) + 1)
C = 32 + (AscB("z") - 32) * Rnd '計算一個可以顯示的字符
.SelStart = P
.SelLength = 1
.SelText = Chr(C)
.SelStart = P
.SelLength = 1
.SelColor = &HFFFFFF * Rnd
End With
End Sub
uj5u.com熱心網友回復:
這個確實有點沒看懂~~我再看看
uj5u.com熱心網友回復:
Randomize 后來我刪了 沒什么用
uj5u.com熱心網友回復:
沒有測驗到樓主所說的現象:Private Sub Command1_Click()
Dim a As String
Dim b As String
Dim c As String
s = RichTextBox1.Text
D = Len(RichTextBox1.Text)
Randomize
i = Int(Rnd * D) + 1
a = Left(RichTextBox1, i - 1)
b = Right(RichTextBox1, Len(s) - i)
c = Mid(s, i, 1)
If c = 1 Then
c = 0
Else
c = 1
End If
'Text2.Text = a & c & b
RichTextBox1.SelStart = i - 1
RichTextBox1.SelLength = 1
RichTextBox1.SelColor = vbRed
End Sub
uj5u.com熱心網友回復:
Randomize 是隨機函式的初始化函式,這樣就不會每次啟動程式的時候隨機的位置變成一樣了不過一般后邊都跟個數字什么的 ,比如 Randomize Timer
uj5u.com熱心網友回復:
Randomize 陳述句初始化亂數生成器。
語法
Randomize [number]
可選的 number 引數是 Variant 或任何有效的數值運算式。
說明
Randomize 用 number 將 Rnd 函式的亂數生成器初始化,該亂數生成器給 number 一個新的種子值。如果省略 number,則用系統計時器回傳的值作為新的種子值。
如果沒有使用 Randomize,則(無引數的)Rnd 函式使用第一次呼叫 Rnd 函式的種子值。
注意 若想得到重復的亂數序列,在使用具有數值引數的 Randomize 之前直接呼叫具有負引數值的 Rnd。使用具有同樣 number 值的 Randomize 是不會得到重復的亂數序列的。
uj5u.com熱心網友回復:
RichTextBox1.Refresh ?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/155887.html
標籤:VB基礎類
