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

時間 2022-07-09 10:20:09

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...