小 小唐 Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-28 #1 用户用文本文件记录了许多数据,每个数据占一行,这当中不免有重复的数据, 如何挑选出不重复的数据放入另一个文本文件中。希望大家能够献出代码,这 个原理可能人人都知道,我要的是实出的代码。谢谢。
B beta Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-29 #2 procedure DeDup(SrcName, DstName: string); var i: Integer; CurrItem: string; Src, Dst: TStringList; begin Src := TStringList.Create; Src.LoadFromFile(SrcName); Dst := TStringList.Create; for i := 0 to Src.Count - 1 do begin CurrItem := Src; if Dst.IndexOf(CurrItem) < 0 then Dst.Add(CurrItem); end; if Dst.Count > 0 then Dst.SaveToFile(DstName); Src.Free; Dst.Free; end;
procedure DeDup(SrcName, DstName: string); var i: Integer; CurrItem: string; Src, Dst: TStringList; begin Src := TStringList.Create; Src.LoadFromFile(SrcName); Dst := TStringList.Create; for i := 0 to Src.Count - 1 do begin CurrItem := Src; if Dst.IndexOf(CurrItem) < 0 then Dst.Add(CurrItem); end; if Dst.Count > 0 then Dst.SaveToFile(DstName); Src.Free; Dst.Free; end;
B beta Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-29 #3 //原理可能人人都知道,我要的是实出的代码 既然知道原理,为何不自己写代码呢(若没有特殊情况的话)? 否则是不可能会有提高的!
小 小唐 Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-29 #4 beta,谢谢你的帮助。 因为进行比较的关键代码一时把我给难住了,使我走了很多弯路,也就是你写的这一行: if Dst.IndexOf(CurrItem) < 0 then 原先我也写过像上面这行这样的代码,判断用户输入的答案是不是在列表项之中, 不过那是用的listbox而不是stringlist,其实这两个东西完全是一回事呀。 有时用要学会变通才行,呵呵。 分数我给你加上了,再次谢谢你!
beta,谢谢你的帮助。 因为进行比较的关键代码一时把我给难住了,使我走了很多弯路,也就是你写的这一行: if Dst.IndexOf(CurrItem) < 0 then 原先我也写过像上面这行这样的代码,判断用户输入的答案是不是在列表项之中, 不过那是用的listbox而不是stringlist,其实这两个东西完全是一回事呀。 有时用要学会变通才行,呵呵。 分数我给你加上了,再次谢谢你!