1樓:匿名使用者
能你的例子 希望對你有幫助
dim a(3) as integer
dim i as integer
a(0)=1
a(1)=2
a(2)=3
a(3)=4
for i = o to 3
text1.text=text1.text & a(i)next i
vb怎麼宣告陣列
2樓:匿名使用者
如果有規律就可以用for ... next ...來賦值,如果沒有規律,資料又很多的話,就從檔案裡面讀。
3樓:匿名使用者
dim 陣列名() as int = new int()
vb 如何往陣列裡新增記錄
4樓:
vb好像沒辦法直接定義動態陣列吧?
一般就是定義一個足夠長的,然後再往裡面新增值
或者只能通過其他間接的途徑是定義一個物件,作為一個動態陣列使用..^_^
可以看一下以下說明
動態陣列
陣列到底應該有多大才合適,有時可能不得而知。所以希望能夠在執行時具有改變陣列大小的能力。
動態陣列就可以在任何時候改變大小。在 visual basic 中,動態陣列最靈活、最方便,有助於有效管理記憶體。例如,可短時間使用一個大陣列,然後,在不使用這個陣列時,將記憶體空間釋放給系統。
如果不用動態陣列,就要宣告一個陣列,它的大小儘可能達到最大,然後再抹去那些不必要的元素。但是,如果過度使用這種方法,會導致記憶體的操作環境變慢。
要建立動態陣列,請按照以下步驟執行:
(如果希望陣列為公用陣列,則)用 public 語句宣告陣列,或者,(如果希望陣列為模組級,則)在模組級用 dim 語句宣告陣列,或者(如果希望陣列為區域性陣列,則)在過程中用 static 或 dim 語句宣告陣列。給陣列附以一個空維數表,這樣就將陣列宣告為動態陣列。
dim dynarray ()
用 redim 語句分配實際的元素個數。
redim dynarray (x + 1)
redim 語句只能出現在過程中。與 dim 語句、static 語句不同,redim 語句是一個可執行語句,由於這一語句,應用程式在執行時執行一個操作。
redim 語句支援這樣的語法,它與固定陣列中使用的語法相同。對於每一維數,每個 redim 語句都能改變元素數目以及上下界。但是,陣列的維數不能改變。
redim dynarray (4 to 12)
例如,用第一次宣告在模組級所建立的動態陣列 matrix1:
dim matrix1 () as integer
然後,在過程中給陣列分配空間:
sub calcvaluesnow ()..
.redim matrix1 (19, 29)
end sub
這裡的 redim 語句給 matrix 分配一個 20 × 30 的整數矩陣(元素總大小為 600)。還有一個辦法,用變數設定動態陣列的邊界:
redim matrix1 (x, y)
注意 您可以將字串賦值給大小可變的位元組陣列。一個位元組陣列也可以被賦值給一個可變長的字串。一定要注意字串中的位元組數會隨平臺而變化。
同一個字串在 unicode 平臺上的位元組數是它在非 unicode 平臺上的兩倍。
保留動態陣列的內容
每次執行 redim 語句時,當前儲存在陣列中的值都會全部丟失。visual basi 重新將陣列元素的值置為 empty(對 variant 陣列)、置為 0(對 numeric 陣列)、置為 零長度字串(對 string 陣列)或者置為 nothing(對於物件的陣列)。
在為新資料準備陣列,或者要縮減陣列大小以節省記憶體時,這樣做是非常有用的。有時希望改變陣列大小又不丟失陣列中的資料。使用具有 preserve 關鍵字的 redim 語句就可做到這點。
例如,使用 ubound 函式引用上界,使陣列擴大、增加一個元素,而現有元素的值並未丟失:
redim preserve dynarray (ubound (dynarray) + 1)
在用 preserve 關鍵字時,只能改變多維陣列中最後一維的上界;如果改變了其它維或最後一維的下界,那麼執行時就會出錯。所以可這樣程式設計:
redim preserve matrix (10, ubound (matrix, 2) + 1)
而不可這樣程式設計:
redim preserve matrix (ubound (matrix, 1) + 1, 10)
詳細資訊 關於動態陣列的更詳細資訊,請參閱語言參考中的「redim 函式」。關於物件陣列,請參閱「用物件程式設計」。
5樓:匿名使用者
省事的辦法不如是建立一個集合。
新增可以用集合的add方法
要遍歷所有的資料可以用for…each語句如:dim a as new collectiona.add ("a")
a.add ("b")
a.add ("c")
a.add ("d")
a.add ("e")
dim s
for each s in a
list1.additem s
next
這樣可以在list1中新增這五個元素
或者用dim i as integer
for i = 0 to a.count-1list1.additem a.item(i)next
也可以實現遍歷
刪除可以用remove方法
6樓:小笨苯
dim arry() as string
dim i as integerfor i to 你想要的最大數
arry(i)= 你往裡新增值 (這裡可以是一個公式,根據不同的引數可以取得不同的值 )
next
vb 如何動態分配陣列大小
7樓:唐小貝戔
陣列到底應該有多大才合適,有時可能不得而知。
所以希望能夠在執行時具有改變陣列大小的能力。
動態陣列就可以在任何時候改變大小。在 visual basic 中,動態陣列最靈活、最方便,有助於有效管理記憶體。例如,可短時間使用一個大陣列,然後,在不使用這個陣列時,將記憶體空間釋放給系統。
如果不用動態陣列,就要宣告一個陣列,它的大小儘可能達到最大,然後再抹去那些不必要的元素。但是,如果過度使用這種方法,會導致記憶體的操作環境變慢。
要建立動態陣列,請按照以下步驟執行:
(如果希望陣列為公用陣列,則)用 public 語句宣告陣列,或者,(如果希望陣列為模組級,則)在模組級用 dim 語句宣告陣列,或者(如果希望陣列為區域性陣列,則)在過程中用 static 或 dim 語句宣告陣列。給陣列附以一個空維數表,這樣就將陣列宣告為動態陣列。
dim dynarray ()
redim dynarray (x + 1)
用 redim 語句分配實際的元素個數。
redim 語句只能出現在過程中。與 dim 語句、static 語句不同,redim 語句是一個可執行語句,由於這一語句,應用程式在執行時執行一個操作。
redim 語句支援這樣的語法,它與固定陣列中使用的語法相同。對於每一維數,每個 redim 語句都能改變元素數目以及上下界。但是,陣列的維數不能改變。
redim dynarray (4 to 12)
例如,用第一次宣告在模組級所建立的動態陣列 matrix1:
dim matrix1 () as integer
然後,在過程中給陣列分配空間:
sub calcvaluesnow ()
redim matrix1 (19, 29)
end sub
這裡的 redim 語句給 matrix 分配一個 20 × 30 的整數矩陣(元素總大小為 600)。還有一個辦法,用變數設定動態陣列的邊界:
redim matrix1 (x, y)
注意
您可以將字串賦值給大小可變的位元組陣列。一個位元組陣列也可以被賦值給一個可變長的字串。一定要注意字串中的位元組數會隨平臺而變化。
同一個字串 unicode 平臺上的位元組數是它在非 unicode 平臺上的兩倍。
保留動態陣列的內容
每次執行 redim 語句時,當前儲存在陣列中的值都會全部丟失。visual basic 重新將陣列元素的值置為 empty(對 variant 陣列)、置為 0(對 numeric 陣列)、置為 零長度字串(對 string 陣列)或者置為 nothing(對於物件的陣列)。
在為新資料準備陣列,或者要縮減陣列大小以節省記憶體時,這樣做是非常有用的。有時希望改變陣列大小又不丟失陣列中的資料。使用具有 preserve 關鍵字的 redim 語句就可做到這點。
例如,使用 ubound 函式引用上界,使陣列擴大、增加一個元素,而現有元素的值並未丟失:
redim preserve dynarray (ubound (dynarray) + 1)
在用 preserve 關鍵字時,只能改變多維陣列中最後一維的上界;如果改變了其它維或最後一維的下界,那麼執行時就會出錯。所以可這樣程式設計:
redim preserve matrix (10, ubound (matrix, 2) + 1)
而不可這樣程式設計:
redim preserve matrix (ubound (matrix, 1) + 1, 10)
vb中這兩種定義陣列方式有什麼區別?
8樓:匿名使用者
簡單的說吧 就是dim 和 redim 的區別如果我**修改成這樣 你就好理解了
dim arr3(1 to 4)
arr3=array(1,4,2,8,9,10)arr3固定陣列只能有4個元素 而array有6個引數 要返回6個元素的陣列
dim arr3(1 to 4)
redim arr3(1 to 6)
這樣肯定是不能執行的
同理在array內部是不判斷arr3到底有幾個元素的空間 能不能和引數的個數所匹配 它只看你是不是動態陣列 能不能按array引數的個數來redim 然後給你賦值而已
9樓:匿名使用者
因為arr3=array(1,4,2,8)已經明確定義
dim arr3(1 to 4)是變成多餘的了
10樓:說啊———喵
陣列在使用之前必須先定義。
按陣列佔用儲存空間的方式不同,分為兩種陣列:靜態陣列和動態陣列。
靜態陣列的定義:public|private|dim 陣列名([下界1 to] 上界1,[下界2 to] 上界2,…) [as 型別],…
動態陣列的定義:首先在模組級或過程級定義一個沒有下標的陣列 :
public|private|dim 陣列名()[as 型別],…
例:dim a() as integer
然後在過程級使用redim語句定義陣列的實際大小:
redim [preserve] 陣列名([下界1 to] 上界1,[下界2 to] 上界2,…) [as 型別],…
例: redim a(1 to 10) as integer
redim preserve a(1 to 20) as integer
在使用陣列時,還可以通過陣列操作函式完成一些操作。例如array函式:array(參數列)。:
array函式將其「參數列」的值構成陣列的各元素值,並賦值給一個variant型別的變數,注意只能賦值給variant型別的變數,賦值後的陣列大小由引數的個數決定,陣列下標的下界由option base語句指定的下界決定。
例如:dim a
a = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
執行上述語句後陣列a各元素值為:
a(0)=1,a(1)=2,a(2)=3,…,a(9)=10
vb定義陣列
阿豪呦 有兩種方法定義陣列 1.知道陣列的元素個數,那麼直接定義 dim a 9 as integer 2.暫時不知道元素個數,或者該陣列應用在多個地方,那麼如下定義 dim a as integer 在使用的時候,再重定義一下就可以了 redim a 9 dim private public 陣列...
VB陣列問題
定義一個二維陣列,第一維你可以理解為行,第二維理解為列。10 表示有0 10 共 11 行 6 表示有 0 6 共7列。當然,前提是你 前面沒有 option base 1 這樣的語句。把陣列裡面的元素 看成下面這樣 1 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 ...
VB陣列排序題目
呵呵,借鑑一下樓上的。加了一個 為了不讓隨機出來的數重複。private sub command1 click dim s 1 to 8,1 to 8 as integerdim stra 1 to 900 as integerdim maxs as integer,l as integer,r a...