Здравствуйте.
Есть StringGrid1 и в нем есть колонки КолA, КолB, кол-во повторов по строкам (см. вложения). Необходимо сделать:
1. сравнение по строкам, т.е. встречается ли пара StringGrid1.Cells[0,i], StringGrid1.Cells[1,i]
2. удалить повторы
3. вывести кол-во повторов
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
kolvoAB, AllAB: array of integer;
i,j,k,kolAB, n: integer;
begin
n:=StringGrid1.RowCount;
SetLength(AllAB,n);
SetLength(kolvoAB,n);
for i:=1 to n do
begin
AllAB[i]:= StrToInt(StringGrid1.Cells[0,i]+StringGrid1.Cells[1,i]);
end;
i:=1;
while i <= n do
begin
kolAB:=1;
j:=i+1;
while j <= n do
begin
if AllAB[i]=AllAB[j] then
begin
for k:=j to n-1 do AllAB[k]:=AllAB[k+1];
kolAB:=kolAB+1;
n:=n-1;
end
else j:=j+1;
end;
kolvoAB[i]:=kolAB;
i:=i+1;
end;
StringGrid1.RowCount:=n;
for i := 1 to n do
StringGrid1.cells[2,i]:=IntToStr(kolvoAB[i]);
end;
Проблема заключается в том, что
1.ошибка "Invalid pointer operation" выскакивает на 33-й строке и данные до конца не отображаются
2.Как решить задачу, если массив AllAB это массив чисел int64