-
ListBox Filtering
سلام بچه ها
یه لیت باکس دارم که حدود 10000 آیتم توشه و پر از آیتم های تکراریه. می خوام توی یه فیل ذخیرش کنم البته از آیتم های تکراری فقط یدونشون نوشته بشه. از یه همچین کدی استفاده می کنم:
کد:
Function TMain.List_ExistsIn(ListBox_NAme: TListBox; EParameter: String): Integer;
Var
i: Integer;
Begin
EParameter := LowerCase(EParameter);
Result := -1;
For i:=0 To ListBox_Name.Items.Count - 1 Do
If EParameter = Lowercase(ListBox_Name.Items[i]) Then Begin
Result := i;
Break;
End;
End;
کد بالا برای تشخیص موجود بودن یه آیتم از قبله، حالا برای ذخیرش این کار رو می کنم:
کد:
Procedure TMain.MakeList(ListBox_Name: TListBox; FileName: String); //================
Var
i: Integer;
Temp_ListBox: TListBox;
Begin
Temp_ListBox := TListBox.Create(Main);
With Temp_ListBox Do Begin
Parent := Main;
Clear;
For i:=0 To ListBox_Name.Count - 1 Do
If Main.List_ExistsIn(Temp_ListBox, ListBox_Name.Items[i]) = -1 Then
Items.Add(ListBox_Name.Items[i]);
Items.SaveToFile(FileName);
Free;
End;
End;
ولی برای یه لیست باط با 10000 آیتم زمان خیلی زیادی صرف می شه، کسی راه بهتر و سریعتری سراغ نداره؟
مرسی
-
دوستان مشکل حل شد خیلی ممنون.