这个问题我曾在VB版问过,没有获得满意的答复,想问问Delphi版的朋友。
有两个文本文件各保存着数万条固定长度的记录,每条记录为15位数字,每条记录各占
一行,怎样快速求出在两个文本文件中都存在的记录,即它们的交集?要求:快速,另外内存开销不能太大。

解决方案 »

  1.   

    function getsameline(file1,file2:string):string;
    var
    sl1,sl2:tstringlist;
    i:integer
    begin
    result:='';
    sl1:=tstringlist.create;
    sl2:=tstringlist.create;
    sl1.loadfromfile(file1);
    sl2.loadfromfile(file2);
    for i:=0 to sl1.count-1 do
    begin
      if sl2.indexof(sl1.strings[i])<0 then
      begin
        result:=sl1.string[i];
        exit;
      end;
    end;
    for i:=0 to sl2.count-1 do
    begin
      if sl1.indexof(sl2.strings[i])<0 then
      begin
        result:=sl2.string[i];
        exit;
      end;
    end;sl1.free;
    sl2.free;
    end;
      

  2.   

    不好意思,上面的两个"<"应该是">="