Stringgrid,сравнение двух столбцов на совпадения и не совпадения

извините за тему,я только в крайнем случае создаю тему,вот с утра мучаюсь и дошел до следующего: есть два столбца,столбец А и Б,в этих столбцах записаны телефонные номера,мне надо записать в столбец С те номера которые есть в столбце А но их нет в столбце Б
procedure TForm1.Button2Click(Sender: TObject);
begin
index:=1;
res:=0;
 for k:=1 to setchik do
 begin
 for j:=1 to setchik do
 begin
 if stringgrid1.Cells[1,k]=stringgrid1.Cells[2,j] then
 res:=res+1;
 end;
 if res=0 then
 stringgrid1.Cells[4,index]:=stringgrid1.Cells[1,k];
 index:=index+1;
 end;
end;
вот как я сделал,но при нажатии кнопки ничего не происходит,где я не так делаю?подскажите
7 ответов

if stringgrid1.Cells[1,k]=stringgrid1.Cells[2,j] then
res:=res+1<font color="Red"><b> else
break;</b></font>
Это - во-первых. А во-вторых - зачем index ? По-моему, должно быть что-то вроде
stringgrid1.Cells[4,j]:=...
Вы же не новую строку заносите, а редактируете старую...


меня выручил пошаговый режим
procedure TForm1.Button2Click(Sender: TObject);
begin
index:=1;
res:=0;
 for k:=1 to setchik do
 begin
 for j:=1 to setchik do
 begin
 if stringgrid1.Cells[1,k]=stringgrid1.Cells[2,j] then
 res:=res+1;
 end;
 if res=0 then
 begin
 stringgrid1.Cells[4,index]:=stringgrid1.Cells[1,k];
 index:=index+1;
 end;
 res:=0;
 end;
end;
этот код работает так как нужно,а если сделать break то это разве не прервет цикл?мне же нужно сравнить полностью два столбца,а index я использую для того чтобы в столбце С который я заполняю не было пустых строк,а если делать так
stringgrid1.Cells[4,j]:=...
то пустые бывают


а если сделать break то это разве не прервет цикл?
Именно так. Какой смысл перебирать дальше, если условие
if res=0 then
уже нарушено?


тут же наоборот цикл прерывается когда res=0; но если обнаружено совпадение то дальше проверять действительно нет смысла,это потом доделаю может,хотя и без этого нормально работает


Да, виноват, поторопился... Нужно
if stringgrid1.Cells[1,k]=stringgrid1.Cells[2,j] then
begin
res:=res+1;
break;
end;


Я щас как раз пробовал этот
if stringgrid1.Cells[1,k]=stringgrid1.Cells[2,j] then
btgin
res:=res+1;
break;
end;
но почему то он не правильно работает...


Я щас как раз пробовал этот
if stringgrid1.Cells[1,k]=stringgrid1.Cells[2,j] then
btgin
res:=res+1;
break;
end;
но почему то он не правильно работает...
не из-за "btgin" случайно? ты кстати имей ввиду, что в стринггриде нумерация столбцов начинается с 0 вроде как. затестил с поправками - все работает нормально.