VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 838|回复: 4

遇到个算法问题想了半天也没解决,帮个忙哦

[复制链接]

4

主题

19

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-1-28 13:40:02 | 显示全部楼层 |阅读模式
文本文档内容如下

// s1   s2 s3     s4      s5
20061217,D,B,DKDDA332021,ESA3332SS1
20061217,D,B,DKDDA332022,ESA3332SS2
20061217,D,B,DKDDA332023,ESA3332SS3
20061217,D,B,DKDDA332021,ESA3332SS2
20061217,D,B,DKDDA332025,ESA3332SS2
20061217,D,B,DKDDA332021,ESA3332SS3
20061217,D,B,DKDDA332022,ESA3332SS7

其中在文本文档中,s4和s5 会有重复的数据.我想把重复的全部删除了.
但是用SORT排序,只能对整行排序.能不能按照s4和s4来进行排序,并删除其中的重复能容(整行)!谢谢大家
回复

使用道具 举报

0

主题

34

帖子

21.00

积分

新手上路

Rank: 1

积分
21.00
发表于 2020-2-24 12:00:01 | 显示全部楼层
把条件说明白: 是“只要某行中S4与S5相同,就删除该行” 还是 “所有行中,凡S4有相同的,只留一行,其余行删去;凡S5有相同的,只留一行,其余行删去” ?
回复

使用道具 举报

4

主题

19

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
 楼主| 发表于 2020-2-29 21:15:01 | 显示全部楼层
凡S4有相同的,只留一行,其余行删去;凡S5有相同的,只留一行,其余行删去

是你这个意思
回复

使用道具 举报

1

主题

13

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-3-2 14:30:02 | 显示全部楼层
算法大概:

filelist:=TStringList.create;
filelist.loadfromfile(...);
newlist:=TStringList.Create;
s4list:=TStringList.Create;
s4list.sorted:=True; //排序,将加快搜索速度

for i:=0 to filelist.count -1
begin
   //分离文本文件的一行,提取s4,
.......

  if newlist.indexof(s4)<0 then
begin
  newlist.add(filelist[i]);
  s4list.add(s4);
end;
end;

newlist.savetofile(....)
回复

使用道具 举报

1

主题

13

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-3-2 16:15:02 | 显示全部楼层
上面是删除S4的,S5类似
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表