VB陣列操作,VB怎麼宣告陣列

2022-12-10 08:05:12 字數 5992 閱讀 5133

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陣列問題

教你一點關於隨機數的知識 語法 rnd number 可選的 number 引數是 single 或任何有效的數值表示式。返回值如果 number 的值是 rnd 生成 小於 0 每次都使用 number 作為隨機數種子得到的相同結果。大於 0 序列中的下一個隨機數。等於 0 最近生成的數。省略 序...

VB陣列輸出問題

首先糾正一個錯誤,array不能做陣列名,因為array本身就是個陣列函式。假如 右邊沒有textbox1.text1 當i 0時,array 0 1 text1box1.textbox1的值是1。當i 1 array 1 2,textbox1.text的值是2,但它將覆蓋array 0 的值,也 ...

vb字典陣列一列,定義字典陣列(VBA)

字典keys是一個陣列,直接用 text join d.keys,vbcrlf 關於此例中join函式用法 返回一個包含子字串陣列中的指定數量的字串。這與 split方法的作用完全相同語法 join list delimiter list,必需的引數。要加入包含屬於子陣列。delimiter,一個可...