文件1:
有100000条手机号码 sjh10.txt
文件2:
有400000条手机号码 sjh40.txt
现在文件1里得信息在文件2里都存在,现在想取出这两个文本中得不同记录
这里得格式如下:
''张三'',''13522215464'',''地址'',''2.00'',''55224'',''幅度撒'',''分额发达''
只取出手机号即可
不通过数据库,最好是能提供思路,我得思路是 取出文件1里得记录与文件2里得记录对比,如果相等那么删除文件2和文件1里的相应记录,再进行下一条对比,如果文件1为空那么保存文件2为文件3(结果),这样可能要求系统得配置要高,所以我想求一个好得解决方案,和实例
我已经想得郁闷了
有100000条手机号码 sjh10.txt
文件2:
有400000条手机号码 sjh40.txt
现在文件1里得信息在文件2里都存在,现在想取出这两个文本中得不同记录
这里得格式如下:
''张三'',''13522215464'',''地址'',''2.00'',''55224'',''幅度撒'',''分额发达''
只取出手机号即可
不通过数据库,最好是能提供思路,我得思路是 取出文件1里得记录与文件2里得记录对比,如果相等那么删除文件2和文件1里的相应记录,再进行下一条对比,如果文件1为空那么保存文件2为文件3(结果),这样可能要求系统得配置要高,所以我想求一个好得解决方案,和实例
我已经想得郁闷了
解决方案 »
- 请教有关delphi数据库的问题
- 誰有興趣開發這樣的Grid控件?
- [一个人]我和公司一个MM的聊天记录,真是才思如泉涌啊,呵呵
- 本人要学delphi请各位大虾给点建议,推荐些书籍?
- c/s三层构架,在客户端怎么创建RemoteServer,不用Dcomconnection?????
- 关于数据库连接时间问题!
- 请教:组件编辑器的问题——为什么没有反应呢?
- 小弟请教一个简单的问题,大家都来帮帮忙!!!!!急急急急急急急急急!!!
- 登陆时为什么sql server 对话框还是弹出?(难道是bde的事?)
- 我倒是很喜欢徐新华和伍俊良写的DELPHI书
- delphi7调用com的问题?
- 如何叛断ServerSocket的接收信息类型?
var
i,j:integer;
IsHave: Boolean;
begin
Memo1.Lines.LoadFromFile('../sjh10.txt');
Memo2.Lines.LoadFromFile('../sjh40.txt');
for i := 0 to Memo2.Lines.Count - 1 do
begin
IsHave := False;
for j := 0 to Memo1.Lines.Count - 1 do
if Copy(Memo2.Lines.Strings[j], Pos(',', Memo2.Lines.Strings[j]) + 3, 11)
= Copy(Memo1.Lines.Strings[i], Pos(',', Memo1.Lines.Strings[i]) + 3, 11) then
begin
isHave := True;
Break;
end;
if not IsHave then Memo3.Lines.Add(Memo2.Lines.Strings[j]); //Memo3里就是不同 的记录
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
memo1.Lines.LoadFromFile(opendialog1.FileName); end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
memo2.Lines.LoadFromFile(opendialog1.FileName); end;
end;procedure TForm1.Button3Click(Sender: TObject);
var
i,j,k,str_num1,str_num2:integer;
str1,str2:string;
str3:TStrings;
begin
//str1:=TStringlist.Create;//多
//str2:=TStringlist.Create;//少
str3:=TStringlist.Create;//结果
str_num1:=memo1.Lines.Count;//多的记录数
str_num2:=memo2.Lines.Count;//少的记录数
str3.Text:=memo2.Text;
for i:=0 to (str_num1 div 20) do
begin
str1:=copy();
for j:=0 to (str_num2 div 2) do
begin str2:=memo2.Lines.Strings[j];
//str2:=copy()
if strcomp(PChar(''+str1+''),PChar(''+str2+''))=0 then
begin
str3.Delete(j);
//str3.Delete[j];
memo2.Lines.Delete(j);
end
else
begin
for k:=(str_num2 div 2 +1) to str_num2-1 do
begin
if strcomp(PChar(''+str1+''),PChar(''+str2+''))=0 then
begin
str3.Delete(k);
memo2.Lines.Delete(k);
if memo1.Text='' then
exit;
end;
end;
end;
end;
end;
str3.SaveToFile('sjhbj.txt');
end;
end.