리스트목록에 아이템중에 같은 종류의 아이템이 있으면 이걸 어떻게 중복체크해서 없앨수가 있나요?
여러개의 같은 페이지가 리스트 박스에 아이템으로 들어갑니다.
if FindFirst(pathname + 'test_files*.*', faAnyFile, SR) = 0 then begin
repeat
if (SR.NAME <> '.') and (SR.NAME <> '..') then begin
FileName := pathname + 'test_files' + Sr.Name;
Assignfile(GFile,FileName);
Reset(GFile);
While not Eof(GFile) do begin
ReadLn(GFile,DataLine);
Posion := Pos(Search, UpperCase(DataLine));
if Posion > 0 then begin
//num := num + 1 ;
if not PChar(Form2.ListBox1.Items.Strings[i]) = FileName then begin
Form2.ListBox1.Items.Add(FileName {+ ' : ' + DataLine});
end;
end;
end;
CloseFile(GFile);
i := i + 1;
end;
until (FindNext(SR)<>0);
if num < 1 then begin
Form2.ListBox1.Items.Add('더이상 검색결과가 없습니다.');
end;
Form2.Show;
Form2.Label2.Caption := Search;
Edit1.Text := '';
end;
FindClose(SR);
end;
반복문이 돌면서 add시켜 주는 구문에 이미 존재하는 값이라면 입력하지 말도록 조건문을 달려고 합니다.
조건문에서 에러메세지가 나오는군요
Operator not applicable to this operand type
음... 잘못된 방법인가요?
에러 내용만으로 봐서는
if not PChar(Form2.ListBox1.Items.Strings[i]) = FileName then begin
이게 문제군요..
if not (PChar(Form2.ListBox1.Items.Strings[i]) = FileName) then begin
괄호를 지정해 주셔야 할거 같습니다만..
그럼..