Delphi中的索引订单?

时间:2013-06-26 05:50:46

标签: delphi matrix

我基本上编写了某种表格,对于列标签,我有一些数字,对于行标签,我有一些字符串,其中包含用逗号分隔的数字。

我正在从名为minterms_essentials TString 中获取所有行标记,并从名为minterms的列标记中获取列标记。

首先,我必须标记创建的2维数组。然后,如果行中的任何字符串包含某个字母,我必须在适当的列中放置'x'

我已经编写了这个Delphi代码,但到目前为止我正在访问违规行为......

SetLength(tabla,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; 

有没有更好更正确的方法呢?

1 个答案:

答案 0 :(得分:5)

看看这个:

第一维由 minterms_essentials

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

但是你在这里使用 minterms 来索引数组的第一个维度:

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

<强> P.S 即可。你还没打开范围检查吗?