2011-12-05 22 views
1

我的代碼 -我想在VB6

For i= 1 to 10 
str & i = InputBox("Enter a number") 
Next i 

創建一個動態變量的問題是,它不會創建變量,並強調了「&」的標誌。請幫忙。 P.S.我不想使用數組。

編輯(從評論的一個更新的要求):

我不能使用數組,因爲它爲學校的項目,我不允許的,並且用戶可以根據輸入儘可能多的數字他想,所以......?

+0

所以我沒辦法做到這一點?我的意思是沒有數組 – user1025469

+0

沒有。即使有辦法,你也不想採取這種做法。動態變量總是一種代碼味道。你想做什麼? – Tomalak

+3

您可以使用集合,這與數組類似,但也許在您的學校項目中允許。 – GTG

回答

4

正如Marco所說,你不能有變量變量。

聽起來像是你需要的不是數組:

dim inputs(1 To 10) as Integer 
For i= 1 to 10 
    inputs(i) = InputBox("Enter a number") 
Next i 

UPDATE:未知數量的輸入的接聽要求,並沒有數組:

你都不可能使用一個集合,因爲這會採取新輸入你需要:

'Create a collection and a temp variable 
Dim strs As New Collection 
Dim str As String 

'Loop until the input is empty 
Do 
    str = InputBox("Enter a number") 
    If str <> "" Then strs.Add (str) 
Loop Until str = "" 


'Then later you can do 
Dim val As String 
For Each val In strs 
    'Do something with val 
Next 
+0

thnx!這個工程:D:D :) – user1025469

0

我想創建VB6動態變量

這就是你想要的,但它肯定不是你所需要的。如果沒有上限

Dim str(10) As String 
Dim i As Integer 

For i= 1 to UBound(str) 
    str(i) = InputBox("Enter a number") 
Next i 

,你可以使用一個集合:

你可以使用一個數組這一點。

Dim str As New Collection 

Do 
    str.Add InputBox("Enter a number"), CStr(str.Count) 
Loop Until str(str.Count) = "" 

str.Remove str.Count 
1

你說用戶可以輸入他們想要的數量。也許你不想要一個For循環,而是一個DoWhile循環,當用戶完成時(當他們將輸入框留空或鍵入「完成」或某物時)Exit

但是,你也許不需要一次存儲所有的數字。只需將該數字輸入到一個變量中,在循環體內進行所需的任何處理(例如將其添加到總數中),然後在循環的下一次迭代中重複使用相同的變量名稱。

如果你真的需要將它們一次全部存儲,是的,你需要一個數組(或者Dictionary或Collection對象,但仍然像數組)。

0

我認爲海報試圖做的事情被誤讀了。他們想要使用單個變量,但繼續使用其他用戶輸入來更新它。一個VB字符串可以很好地工作,並附加一個vbCrLf將分割字符串來分隔值easy。這與Tomalak的樣本非常相似。

Dim strUserInput As String 

Do 
    strUserInput = InputBox("Enter a number") 
    Text1.Text = Text1.Text & vbCrLf & strUserInput 'I am displaying the user input but another string can be used here also 
Loop While Len(strUserInput) > 0 
+0

請不要使用字符串來存儲非字符串數據! – Deanna

+0

@Deanna你從InputBox得到了什麼其他類型的數據?這將是(預期)數字的字符串表示。 – jac

+0

是的,但你並沒有將數據存儲在'InputBox'中。將其本機類型轉換爲字符串並從字符串中進行顯示,但要小心本地化。使用本機類型也可以提供衛生方式。 – Deanna