我基本上编写了某种表格,对于列标签,我有一些数字,对于行标签,我有一些字符串,其中包含用逗号分隔的数字。
我正在从名为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;
有没有更好更正确的方法呢?
答案 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 即可。你还没打开范围检查吗?