首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

如何做字符串链表

2012-03-14 
怎么做字符串链表我想用VB保存若干个字符串,比如班里学生的姓名和电话号码。用什么数据结构保存,尽可能让程

怎么做字符串链表
我想用VB保存若干个字符串,比如班里学生的姓名和电话号码。用什么数据结构保存,尽可能让程序看起来比较简单易懂?

如果用C++,做一个struct(分别保存姓名和电话号码)和链表是很合适的。VB有类似的办法吗,注意程序要简洁,让人容易看懂。用VarPtr等等实现链表还是算了。

已知方法或问题:
1.班里学生的个数是预先不知道的
2.如果用Redim数组的方法,需要考虑什么时候Redim,每次Redim多少,程序看起来会比较麻烦
3.如果用一个字符串把所有的信息连接起来,会遇到连接符号在名字里面也可能出现的情况。如用|连接,但也可能姓名里面出现|符号
4.谁知道能不能用Collection对象?怎么用?



[解决办法]
比如,添加一个类模块:

public sName as string '姓名
public sPhone as string  '电话

'我只是简单示例,类代码你自己完善

窗体:

dim cls as class1
dim col as collection

set cls=new class1
set col=new collection
cls.sName="AA"
cls.sPhone="02588863633"
col.Add cls


[解决办法]
1.
new是实例化对象,声明时没有实例化,使用的时候用下面的语句即可:
set col=new collection 
2.
VB6.0中,自定义type不能加入col


[解决办法]
VB6里对应struct的关键字是type.根据你的描述,在VB6里你可以用class封装一个type.如下:


Option Explicit

'学生信息
Private Type StdInfo
Id As Long
Name As String
address As String
'.....
 
End Type


'班级信息
Private Type ClsInfo
Number As String '班级人数
Students() As StdInfo
End Type

Private CurCls As ClsInfo


Public Function Add(Id As Long, Name As String, address As String) As String
'前置断言
'......
  
CurCls.Number = CurCls.Number + 1
ReDim CurCls.Students(CurCls.Number)
  
'添加操作
'......
End Function

Public Function Del(Id As Long) As String
'删除预处理
'......
  
CurCls.Number = CurCls.Number - 1
ReDim CurCls.Students(CurCls.Number)
 
End Function

Public Function GetXXX(Id As Long) As String
'如 GetName \ GetAddress ......
  
End Function
Public Function SetXXX(Id As Long) As String
'如 SetName \ SetAddress ......
  
End Function

热点排行