![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
Есть 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 Последний раз редактировалось royun, 28.01.2014 в 07:16. |