2013-06-26 101 views
-1

我基本上是編碼某種表格,其中列標記我有一些數字和行標記我有一些字符串包含這些數字用逗號分隔。Delphi中的索引順序?

我正在從名爲minterms_essentialsTString以及名爲minterms的列標記中獲取所有行標記。

首先,我必須標記創建了2維數組。然後,如果行中的任何字符串包含某個字母,我必須將'x'放在適當的列中。

我已經寫了這個Delphi代碼,但我發現訪問衝突至今...

SetLength(塔布拉,minterms_essentials.Count + 1,minterms.Count + 1);

for i := 0 to minterms.Count-1 do 
begin 
    tabla[0,i+1] := IntToStr(BinToInt(minterms[i])); 
end; 

for i := 0 to minterms_essentials.Count-1 do 
begin 
    tabla[i+1,0] := minterms_essentials[i]; 
end; 

for i := 1 to minterms_essentials.Count-1 do 
begin 
for g := 1 to minterms.Count-1 do 
    begin 
    ss := tabla[g,0].Split([',']); 
    for s in ss do 
     begin 
     if s = tabla[0,g] then 
      begin 
      tabla[g,i] := 'x'; 
      end; 
     end; 
    end; 
end; 

有沒有更好更正確的方法來做到這一點?

回答

5

看看這個:

第一維是由minterms_essentials

SetLength(tabla, minterms_essentials.Count+1,minterms.Count+1); 

但這裏使用的是定義小項到數組的索引第一維度:

for g := 1 to minterms.Count-1 do 
    begin 
    ss := tabla[g,0].Split([',']); 

PS。你還沒有打開範圍檢查嗎?

+1

另外你應該改變下面的行tabla [g,i]:='x'; to tabla [i,g]:='x'; –