一下是我的一段代码,它的主要工作是分析出,哪些单位名是相近的,我采用的方法比较笨,就是通过测试两个单位名(从数据库中读出)相同字数来决定他们是否相似
现在的问题是,面对两张表中的相同数据出现了不同结果,一天了,不知道为什么//////////以下代码用于申请号分配的初始工作,显示与第一条记录相似的企业,总体思路是一个字符一个字符的比较最后求出相似度///
procedure fpbh(query3:TQuery;listbox:TListBox;edit:TEdit);
var
counter:integer;
insertstr:widestring;
temp1:widestring;
loop:integer;
loop1:integer;
flag:integer;//标志位用于标示该记录是否唯一
begin
flag:=0;
counter:=0;//计数器
chaxun:='select * from suntest';//这是其中的一张表,用它我可以得到想要的结果,用另一张,其中的数据远大于suntest,则结果不对
query3.Close;
query3.SQL.Clear;
query3.SQL.Add(chaxun);
query3.Open;
query3.First;
temp:=query3.FieldByName('gsm').AsString;
edit.Text:=temp;
query3.Next;
while not query3.Eof do
begin
temp1:=query3.FieldByName('gsm').AsString;
for loop:=1 to length(temp)do//比较字符串的相同个数
for loop1:=1 to length(temp1)do
begin
if(trim(temp[loop])=trim(temp1[loop1]))then
counter:=counter+1;
end;
if((counter/length(temp1))>0.5)then
begin
ListBox.items.add(temp1);
flag:=1;
counter:=0;
end;
query3.Next;
end;
if(flag=0)then
showmessage('该记录结果唯一');
end;
同学们请帮帮我吧
现在的问题是,面对两张表中的相同数据出现了不同结果,一天了,不知道为什么//////////以下代码用于申请号分配的初始工作,显示与第一条记录相似的企业,总体思路是一个字符一个字符的比较最后求出相似度///
procedure fpbh(query3:TQuery;listbox:TListBox;edit:TEdit);
var
counter:integer;
insertstr:widestring;
temp1:widestring;
loop:integer;
loop1:integer;
flag:integer;//标志位用于标示该记录是否唯一
begin
flag:=0;
counter:=0;//计数器
chaxun:='select * from suntest';//这是其中的一张表,用它我可以得到想要的结果,用另一张,其中的数据远大于suntest,则结果不对
query3.Close;
query3.SQL.Clear;
query3.SQL.Add(chaxun);
query3.Open;
query3.First;
temp:=query3.FieldByName('gsm').AsString;
edit.Text:=temp;
query3.Next;
while not query3.Eof do
begin
temp1:=query3.FieldByName('gsm').AsString;
for loop:=1 to length(temp)do//比较字符串的相同个数
for loop1:=1 to length(temp1)do
begin
if(trim(temp[loop])=trim(temp1[loop1]))then
counter:=counter+1;
end;
if((counter/length(temp1))>0.5)then
begin
ListBox.items.add(temp1);
flag:=1;
counter:=0;
end;
query3.Next;
end;
if(flag=0)then
showmessage('该记录结果唯一');
end;
同学们请帮帮我吧
解决方案 »
- 关于父类与子类的一点疑问、
- 开发办法,请出点建议!
- 请问谁知道 换肤控件SkinEngine Version 3.4.5在那里有下载?
- DELPHI创建动态连接库出现指针错误是怎么回事?
- 庆祝我步入牢狱,兄弟结婚了,散分,明天此时结贴1
- 哪个好心人可以帮我吗?我想用delphi连接.mdb(access文件)。能连接能显示字段内容就可以,可以帮我吗?我不会用delphi的ado
- 茫然...?
- 怎么拦截‘打开’对话框中的文件夹名?
- Delphi 下利用UniStoredProc空间执行MySQL存储过程问题
- 请问各位:可以把Trichedit的内容保存到数据库中的blob字段吗? 能够同时显示文档的格式吗?
- 如何再webbrowser中实现查找
- TabOrder的问题
1、这算法的确不高明
2、代码可优化的地方太多
3、整个看来,这些代码就是只判断第一条记录与后面的记录相不相似,至于第二条与第三条是不是相似就不管它了.........
4、解答你的问题:counter没有被重新置为零。你的代码中,当找到相似字串后,才重置counter为0,如果没有找到,那么counter的值就是上次比较的结果。这样当然不正确服