为什么会有重复值。要怎么做才能不会有重复?

时间:2021-03-14 11:17:29
integer li_FileNum
string ls_file_swap
long i,j
li_FileNum = FileOpen("D:\PB制作\zuixin\1.txt", lineMode!, Write!, LockWrite!, Append!)
dw_1.setsort('city,tmpname,tmpadd,dhgsh,tmptel_1,zj,cls,bianma,tmpname1,tmpname2,beizhu,jibie,city1,cls1,bianma1,isok,sfjd')
//
dw_1.sort()
j = dw_1.rowcount()
if j>0 then
ls_file_swap =dw_1.getitemstring(1,'city') +""+dw_1.getitemstring(1,'tmpname')+""+ dw_1.getitemstring(1,'tmpadd') + ""+dw_1.getitemstring(1,'tmptel_1')
for i = 2 to j

if dw_1.getitemstring(i,'tmpname') = dw_1.getitemstring(i - 1,'tmpname') then
//如果公司名称相同,则取出下列字段
ls_file_swap = ls_file_swap + "~r~n"  + dw_1.getitemstring(i,'dhgsh') +""+dw_1.getitemstring(i,'tmptel_1')+""+string(dw_1.getitemnumber(i,'zj'))+""+dw_1.getitemstring(i,'cls')&
+""+dw_1.getitemstring(i,'bianma')+""+dw_1.getitemstring(i,'tmpname1')+""+dw_1.getitemstring(i,'tmpname2')+""+string(dw_1.getitemnumber(i,'jibie'))+""+dw_1.getitemstring(1,'beizhu')&
+""+dw_1.getitemstring(1,'city1')+""+dw_1.getitemstring(1,'cls1')+""+dw_1.getitemstring(1,'bianma1')+""+string(dw_1.getitemnumber(i,'Isok'))+""+string(dw_1.getitemnumber(i,'sfjd'))

else
//如果不相同,则取出下列字段并另起一行
ls_file_swap = ls_file_swap + "~r~n" + dw_1.getitemstring(1,'city') +""+dw_1.getitemstring(i,'tmpname') +"" + dw_1.getitemstring(i,'tmpadd') + "" +dw_1.getitemstring(i,'tmptel_1')
end if 
FileWrite(li_FileNum, ls_file_swap)
next
end if

当dhgsh有几个时它就重复几次。

就像这样.不知道到底循环错在什么地方了。怎么会成这样。大虾帮帮我!!!

XX卫生院  XX乡高村街 64900173  
XX卫生院  XX乡高村街 64900173  
          科室部     64900203  
XX卫生院  XX乡高村街 64900173  
          科室部     64900203  
          门诊骨科   64900132  
XX卫生院  XX乡高村街 64900173  
          科室部     64900203  
          门诊骨科   64900132 
          内科门诊   64900073 
这里只列出了其中的一些列。本来想要的结果应该是这样的
XX卫生院  XX乡高村街 64900173  
          科室部     64900203  
          门诊骨科   64900132 
          内科门诊   64900073 
可是事与愿违啊。郁闷。。。。。

5 个解决方案

#1


if比较和
dw_1.getitemstring(1,'city') 
有问题!

用一个变量保存tmpname 方便点
string sname
j = dw_1.rorcount()
if j>0 then 
   sname = dw_1.object.tmpname[1]
   ls_file_swap =dw_1.getitemstring(1,'city') +""+dw_1.getitemstring(1,'tmpname')+""+ dw_1.getitemstring(1,'tmpadd') + ""+dw_1.getitemstring(1,'tmptel_1')

   for i = 2 to j
       if snam = dw_1.object.tmpname[i]
      ls_file_swap = ls_file_swap + "~r~n"  + dw_1.getitemstring(i,'dhgsh') 。。。
       else
      ls_file_swap = ls_file_swap + "~r~n" + dw_1.getitemstring(i,'city') +""+dw_1.getitemstring(i,'tmpname') +"" + dw_1.getitemstring(i,'tmpadd') + "" +dw_1.getitemstring(i,'tmptel_1')
       snam = dw_1.object.tmpname[i]
   next
end if


再调试看看吧!

#2


很麻烦吧.
把内容导进一个数据表中,然后根据业务需求,进行distinct和having count(*)>1就行了。

#3


可以直接建个group类型的dw 按前两列分组
保存时直接dw_group.saveas("D:\PB制作\zuixin\1.txt", text!, FALSE)

#4


做一个表,用SQL来写,简单方便好多

#5


lz要干嘛?

#1


if比较和
dw_1.getitemstring(1,'city') 
有问题!

用一个变量保存tmpname 方便点
string sname
j = dw_1.rorcount()
if j>0 then 
   sname = dw_1.object.tmpname[1]
   ls_file_swap =dw_1.getitemstring(1,'city') +""+dw_1.getitemstring(1,'tmpname')+""+ dw_1.getitemstring(1,'tmpadd') + ""+dw_1.getitemstring(1,'tmptel_1')

   for i = 2 to j
       if snam = dw_1.object.tmpname[i]
      ls_file_swap = ls_file_swap + "~r~n"  + dw_1.getitemstring(i,'dhgsh') 。。。
       else
      ls_file_swap = ls_file_swap + "~r~n" + dw_1.getitemstring(i,'city') +""+dw_1.getitemstring(i,'tmpname') +"" + dw_1.getitemstring(i,'tmpadd') + "" +dw_1.getitemstring(i,'tmptel_1')
       snam = dw_1.object.tmpname[i]
   next
end if


再调试看看吧!

#2


很麻烦吧.
把内容导进一个数据表中,然后根据业务需求,进行distinct和having count(*)>1就行了。

#3


可以直接建个group类型的dw 按前两列分组
保存时直接dw_group.saveas("D:\PB制作\zuixin\1.txt", text!, FALSE)

#4


做一个表,用SQL来写,简单方便好多

#5


lz要干嘛?