易語言陣列成員引用下標超出定義範圍怎麼解決啊

時間 2021-07-21 03:43:39

1樓:山水阿銳

您好,這樣的:為什麼會出現這種錯誤?

因為你取出的陣列成員不存在,假設你要取的陣列只有2個成員,你取了第3個成員,那樣肯定會提示這種錯誤的,例如下圖的易語言原始碼:

上面的是初級錯誤,新手容易犯。

一般的易語言程式設計師會在用正規表示式、分割文字,從網路中獲取文字進行分割時出現陣列成員引用下標超出定義範圍。

如何防範陣列成員引用下標超出定義範圍導致程式意外退出呢?

方法很簡單,就是在取陣列成員的時候先判斷一下陣列成員數是否正常。

你需要用到的命令是,取陣列成員數(),易語言中有該函式的詳細說明!

舉個例子:

我們想採集某個**的內容,這個**內容包含的有[標題][作者][發布時間][內容]

我們用正規表示式採集的時候發現程式提示陣列成員引用下標超出定義範圍,

那麼我們就看看是再哪個頁面出現問題的,找到之後發現這篇文章居然沒有作者,應該是**管理員疏忽忘記新增了。這時我們用正則表示取出的陣列成員數只有3個,我們再取第4個的時候就會出錯。

解決方法是在我們要取正規表示式獲取的內容之前先判斷一下取陣列成員數是否等於4,如果等於4我們就直接取內容,如果不等於4那麼我們只取3個內容,自己把作者補起來,或者直接跳過該頁面去取正常格式的**內容。

2樓:匿名使用者

用 取陣列成員數() 除錯一下陣列試試 呼叫出錯的吧

e語言程式執行時出錯,錯誤資訊:陣列成員引用下標超出定義範圍

3樓:

1,原因:因為取出的陣列成員不存在,假設要取的陣列只有2個成員,取了第專3個成員,那樣肯定會提屬示這種錯誤的。

2,一般的易語言程式設計師會在用正規表示式、分割文字,從網路中獲取文字進行分割時出現陣列成員引用下標超出定義範圍。

3,防範方法很簡單,就是在取陣列成員的時候先判斷一下陣列成員數是否正常。

需要用到的命令是,取陣列成員數(),易語言中有該函式的詳細說明。

4樓:匿名使用者

就是程式的數

組超過bai了du

!!@如!我給 變數1賦予

zhi數值!!!

然後 變數1 擁有 5個數dao組而你程式中由於版**迴圈!!到乙個權步驟

成了 取變數1的第6個陣列!!而我們只給予了5個陣列!沒有6號陣列!就是這個意思!!

解決方法!!加上**取變數陣列!!在**中加上不能超過陣列!就可以了!!

易語言 陣列成員引用下標超出定義範圍

5樓:d塵封de青春

這是因為所取值的範圍超出了資料庫裡的資料,就是沒有依靠資料庫中的資料取值,這樣肯定會出現這種提示,比如資料庫裡只有兩個資料1和2,但是所程式設計的程式裡取值3,這樣就會導致資料庫識別不出,然後呈程式中斷

一般的易語言程式設計師會在用正規表示式、分割文字,從網路中獲取文字進行分割時出現陣列成員引用下標超出定義範圍

擴充套件資料

可以採用如下建議防止陣列成員引用下標超出定義範圍導致程式意外退出

方法很簡單,就是在取陣列成員的時候先判斷一下陣列成員數是否正常。你需要用到的命令是,取陣列成員數(),易語言中有該函式的詳細說明!

舉個例子:

我們想採集某個**的內容,這個**內容包含的有標題、作者、發布時間、內容。我們用正規表示式採集的時候發現程式提示陣列成員引用下標超出定義範圍

解決方法是在我們要取正規表示式獲取的內容之前先判斷一下取陣列成員數是否等於4,如果等於4我們就直接取內容,如果不等於4那麼我們只取3個內容,自己把作者補起來,或者直接跳過該頁面去取正常格式的**內容。

6樓:匿名使用者

1、這裡說的是要取的陣列元素,在陣列中不存在。

2、比如定義了乙個5元素的陣列,用得時候去取第6個元素,就會造成上述錯誤。

3、另外,e語言陣列下標是從1開始的,如果取第0個元素,也是錯的。

4、圖示:

5、修改方法:取定義範圍內的元素或擴大陣列範圍。

7樓:匿名使用者

按照你說的,如果是提示陣列成員引用下標超出定義範圍的話,應該是返回陣列的問題,一旦返回陣列的成員不到3個,那麼你寫的返回陣列 [3]就會提示那樣的錯誤,你檢查下返回陣列的成員數吧。

8樓:匿名使用者

錯誤原因:你的」大體**內容「這個位元組集估計是空的(沒有獲取到),或者中間沒有中文冒號這個位元組集,這樣的話分割之後肯定就不成為陣列了對吧,也就是陣列成員數為0,而你下一行**直接使用了 分割內容[1],引用了乙個不存在的陣列元素,肯定會錯誤。

改進方法:

在使用分割內容[1]之前,先檢查陣列的成員數,用命令「取陣列成員數()」即可,然後判斷它的值是不是>0,然後再引用陣列元素。(以後程式設計使用陣列前都要檢查,這樣不容易出bug。)

如果你的大體**內容肯定是含有中文冒號這個位元組集的...那就是你之前的取回資料那裡出了故障,取回的資料是空的..檢查檢查。

但是也要看看方法1中,最好寫乙個異常處理,否則一旦崩潰程式就掛了。

全手打。望採納!

9樓:匿名使用者

1l說的很詳細,簡單點說就是因為沒有分割到東西,所以這個陣列是空陣列(0),下標為1就超出範圍報錯了.

易語言陣列成員引用下標超出定義範圍 求解決啊~

10樓:匿名使用者

錯誤原因:你復

的」大製體**內容「這個位元組集估bai計是空的(沒有獲取du到),

zhi或者中間沒有中文冒號這dao個位元組集,這樣的話分割之後肯定就不成為陣列了對吧,也就是陣列成員數為0,而你下一行**直接使用了 分割內容[1],引用了乙個不存在的陣列元素,肯定會錯誤。

改進方法:

在使用分割內容[1]之前,先檢查陣列的成員數,用命令「取陣列成員數()」即可,然後判斷它的值是不是>0,然後再引用陣列元素。(以後程式設計使用陣列前都要檢查,這樣不容易出bug。)

如果你的大體**內容肯定是含有中文冒號這個位元組集的...那就是你之前的取回資料那裡出了故障,取回的資料是空的..檢查檢查。

但是也要看看方法1中,最好寫乙個異常處理,否則一旦崩潰程式就掛了。

全手打。望採納!

11樓:匿名使用者

1l說的很詳細,簡單點說就是因為沒有分割到東西,所以這個陣列是空陣列(0),下標為1就超出範圍報錯了.

12樓:貢顏節香菱

陣列不能這樣賦值的。有個命令叫

加入成員(,)

易語言程式:陣列成員引用下標超出定義範圍,怎麼解決??(具體情況如下)

13樓:登進士第時光

把 區域性變數 b, 文字復

型, , "2" 改為0.計次迴圈制首 (取陣列成員數 (b), d) c = 超級列表框1.插入表項 (, , , , , ) 超級列表框1.

置標題 (c, d-1, b [d]) .計次迴圈尾 ()

易語言執行時錯誤:陣列成員引用下標超出定義範圍,求助!

14樓:小樓思雨

你按我這bai樣寫就不會出錯了du,你的之所以出錯,是因為zhi你「編輯框1」的內dao容小於3行!

.版本版 2

.程式集變數 分數權設定, 文字型

.程式集變數 金幣設定, 文字型

.程式集變數 姓名設定, 文字型

.程式集變數 a, 文字型, , "0"

.子程式 _按鈕1_被單擊

.區域性變數 陣列成員數, 整數型

a = 分割文字 (編輯框1.內容, #換行符, )陣列成員數 = 取陣列成員數 (a)

.如果真 (陣列成員數 < 3)

輸出除錯文字 (「陣列成員數小於3」)

返回 ()

.如果真結束

分數設定 = a [1]

金幣設定 = a [2]

姓名設定 = a [3]

易語言陣列成員引用下標超出定義範圍

的放鬆放鬆 你判斷陣列有多少就有多少 版本 2 支援庫 regex 搜尋結果 正則1.搜尋全部 內容框1.內容 計次迴圈首 取陣列成員數 搜尋結果 f 內容框02.加入文字 搜尋結果 f 取匹配文字 內容框1.內容,換行符 計次迴圈尾 錯誤原因 你的 大體 內容 這個位元組集估計是空的 沒有獲取到 ...

c語言結構體陣列成員怎麼賦值,C語言結構體陣列成員怎麼賦值?

會飛的小兔子 intmain void printf d,s n bao.id,bao.name 輸出是4224528,空 應該是null structstudentsbao 可以。第一種賦值方法 strcpy bao.name,bao 可以,printf d,s n bao.id,bao.name...

易語言問題,易語言陣列問題

版本 2 支援庫 htmlview 支援庫 iext 程式集 視窗程式集1 子程式 啟動視窗 尺寸被改變 區域性變數 編輯框寬度,整數型 超文字瀏覽框1.寬度 取使用者區寬度 20 超文字瀏覽框1.高度 狀態條1.頂邊 10 超文字瀏覽框1.頂邊 編輯框寬度 取使用者區寬度 10 位址編輯框.左邊 ...