数据结构问题,请教大侠,免灌水 (100分)

  • 主题发起人 sunrace2000
  • 开始时间
S

sunrace2000

Unregistered / Unconfirmed
GUEST, unregistred user!
我要做的是一个类似NetAnts的东西,不过是用来对上百个银行网点的Unix服务器上传报表文件,对每个网点上传的文件数不定。
一个类似NetAnts的界面,上面有A,B两个ListView。A有机构IP,机构号,机构名称,文件数,及其他传输中的信息,B则存放多个文件名。
部分代码如下:
type
TInfoList=Class
BaseInfo :TstringList; //对应A
FileList :TstringList; //对应B
End;
//=============================
Var
List1 : Tlist ;
InfoList1 :TInfoList
begin

………..
List1.Add(InfoList1);
…………
End;
//==============================
我的问题:
1. 以上数据结构用来维护信息是否可行?若不行,请提出修改方案。
2. 若可行,怎么样通过List1来维护A,B两个ListView?
感谢您的解答!
 
TUnitObj = class
private
fId: string;
fUnitName: string;
.....
protected
public
constructor Create(.....);
end;

ffileObj = class
private
fName: string;
public
property FileName: string read fName write fName;
end;

TAList = class
private
fList: TStrings;
procedure AddAUnit(UnitName, Ip: string);
public
constructor Create;
end;

..............
procedure TALit.AddUnit(UnitName, Ip: string);
var
AObj: TUnitObj;
begin
//假设没有重复名称
AObj := TUnitObj.Create(UnitName, Ip);
fList.AddObject(UnitName, AObj);
end;
 
谢谢alaclp,您的意思是说数据结构不合理吗?我先把您的代码整理一下,
晚上再来看看。
欢迎各位老大继续讨论!
 
您是担心list的效率吧?您可以考虑把顺序存储和链式存储的优势结合的数据结构---
比如把List1改为这样一个哈希表:
定义一个类(记录)指针的数组,元素个数为n(素数),在需存储的类对象中确定一
个key,建立有key到n的映射;解决冲突的办法是,数组的元素类指针作为表头指针,所有映
射到此(i)的对象再连接为一个list。
 
效率当然是重要的因素,不过还要考虑可操作性及线程安全,因为ListView的每一行将对应
一个Ftp线程(运行中的,被中断的,未运行的),还有对ListView的编辑,删除等操作。
通过一系列操作,仍要保证运行信息和线程的对应关系。所以我想找到一个最合理的结构
来简化我的处理。
谢谢您的参与!
 
多人接受答案了。
 
顶部