Delphi中的索引订单?

die*_*lar -1 delphi matrix

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

我从名为的TString中获取所有行标记,minterms_essentials并从一个名称中获取列标记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; 
Run Code Online (Sandbox Code Playgroud)

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

MBo*_*MBo 5

看这个:

第一个维度由minterms_essentials定义

SetLength(tabla, minterms_essentials.Count+1,minterms.Count+1);
Run Code Online (Sandbox Code Playgroud)

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

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

PS.你还没打开范围检查吗?