全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3029
推到 Plurk!
推到 Facebook!

有關一些 Pascal 語法的問題

 
阿子
站務副站長


發表:120
回覆:230
積分:201
註冊:2002-03-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-03-25 14:46:01 IP:61.221.xxx.xxx 未訂閱
各位大大你好 請問各位大大在Pascal程式中要如何判斷 陣列為空值, 為空值情況有二種 一種為有陣列數可以用陣列名[I]取出值作判別,第二種是在動態陣列時要如何判斷說沒有宣告陣列數。 從思考取勝一切~q
------
從思考取勝一切~q
scottliou
版主


發表:16
回覆:56
積分:47
註冊:2002-03-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-03-25 18:36:54 IP:61.70.xxx.xxx 未訂閱
要判斷陣列數使用 Length(AA)     
 
var
  aa : array[1..10] of integer;
begin
  ShowMessage(inttostr(Length(AA))); // 10
end;
~~~~~~~~~~~~~~~~ 有夢想最美......
------
~~~~~~~~~~~~~~~~
有夢想最美......
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-03-25 19:19:15 IP:192.168.xxx.xxx 未訂閱
也可用
var a:array of string;
begin
  if a=nil then caption:='nil1';
  setlength(a,10);
  if a=nil then caption:='nil2';
end;
~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
阿子
站務副站長


發表:120
回覆:230
積分:201
註冊:2002-03-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-03-25 23:44:02 IP:61.221.xxx.xxx 未訂閱
謝謝 scottliou 和站長的回答    小弟在這還有一個問題也是有關陣列方面的,在Pascal中的函數及程序 可用陣列當作參數以避免未知的參數數目,可是當要是用陣列當作參時在函數(程序)中要是你用
var
 ASS:array of string;
begin
  ASS: Copy(傳入的陣列);  
此時會Delphi 會吐一個 Incompatible types 給你 或是用
  if 傳入的陣列 = nil then 
還是吐一個 Incompatible types 給你 以上的語法看來都是沒有錯但Delphi就是 一直吐Incompatible types 給你 煩請各位大大給小弟解答一下。 從思考取勝一切~q
------
從思考取勝一切~q
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-03-26 00:06:09 IP:61.219.xxx.xxx 未訂閱
引言: 謝謝 scottliou 和站長的回答 小弟在這還有一個問題也是有關陣列方面的,在Pascal中的函數及程序 可用陣列當作參數以避免未知的參數數目,可是當要是用陣列當作參時在函數(程序)中要是你用
var
 ASS:array of string;
begin
  ASS: Copy(傳入的陣列);  
此時會Delphi 會吐一個 Incompatible types 給你 或是用
  if 傳入的陣列 = nil then 
還是吐一個 Incompatible types 給你 以上的語法看來都是沒有錯但Delphi就是 一直吐Incompatible types 給你 煩請各位大大給小弟解答一下。 從思考取勝一切~q
有點看不太懂您的意思! 以下是我用來傳遞不定數量的參數的用法供參考:
procedure PassArray(data :array of string);
var i:integer;
begin
  form1.caption:='';
  for i := 0 to High(data) do
  begin
     form1.caption:=form1.caption data[i];
  end;
end;    procedure TForm1.Button1Click(Sender: TObject);
begin
   PassArray(['a','b','c']);
end;    
~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
peipei36
一般會員


發表:8
回覆:51
積分:16
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-03-26 01:26:40 IP:61.59.xxx.xxx 未訂閱
to 阿子: 不知您說的是不是這個問題...就是呼叫端與被呼叫端同樣的 array of string,Delphi將它們視為不同的type... 若是的話..您可以在呼叫端與被呼叫端都看得到的地方, 自行定義一個叫做 type TArrayOfString = array of string; 再將原程式碼的array of string以TArrayOfString取代.. 我都這樣做的...若有不妥..煩請大家教教偶^^~thx~
阿子
站務副站長


發表:120
回覆:230
積分:201
註冊:2002-03-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-03-26 19:20:53 IP:61.221.xxx.xxx 未訂閱
謝謝 peipei36 和站長的再度回答 使小弟對陣列的應用又多了一層的了解,謝謝了。 從思考取勝一切~q
------
從思考取勝一切~q
系統時間:2017-10-18 6:31:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!