Показать сообщение отдельно
  #1  
Старый 05.01.2010, 18:17
ЭлЭрДжи ЭлЭрДжи вне форума
Прохожий
 
Регистрация: 03.01.2010
Сообщения: 4
Репутация: 10
По умолчанию БД в делфи (лаба)

Здравствуйте. Нужна помощь: дана программа базы данных, в нее нужно интегрировать кнопку поиска и вывода студентов-однофамильцев на отдельную форму. пробовал писать процедуры, видимо, где-то ошибка...

вот функция поиска однофамильцев и процедура обработки, помогите пожалуйста, очень надо

Код:
function IsOdnofam(S: TStud): boolean;
var
  c             : array of string;
  compare  : string;
  b,r           : char;
  i,j,jc         : integer;
begin
  Result := true;
  SetLength(c,StringGrid1.RowCount - 2);  i := 0; jc := 0;
for j := 1 to StringGrid1.RowCount - 1 do
  begin
    b := cells[5,j];
    while b[i] <> ' ' do
      begin
        r := r + b[i];
        Inc(i);
      end;
    c[j-1] := r;
  end;
while jc <> StringGrid1.RowCount do
for j := jc to StringGrid1.ColCount - 1 do
  begin
    compare := c[jc];
    i := j;
    if (compared = c[j]) and (i <> j) then
    result:=false;
  end;
   if j = StringGrid1.ColCount - 1 then
      inc(jc);
  end;
end.
end;

procedure SetFindOdnofam(StringGrid: TStringGrid);
var
  i: word;
  j: integer;
begin
  FindStr:=AnsiUpperCase(FindStr);
  ResetStud; i:=0; adr:=-1;
  with StringGrid do
  while not EOF(fStud) do
  begin
    Read(fStud,Stud); adr:=adr+1;   // AnsiUpperCase(const S: string): string;
    if (Stud.y<>0) and (IsOdnofam(Stud)) then begin
      Inc(i);
      Cells[0,i]:=IntToStr(adr);
      Cells[1,i]:=IntToStr(i);
      Cells[2,i]:=IntToStr(Stud.IdGroup);
      Cells[3,i]:=IntToStr(Stud.IdStud);
      Cells[4,i]:=Stud.FIO;
      end;
  end;
  StringGrid.RowCount:=i+1;
  if i>0 then StringGrid.FixedRows:=1;
  CloseFile(fStud);
end;

если что, сам проект выложил здесь http://dump.ru/file/4080317
Ответить с цитированием