vbRichClient5的AarriayList对象参考

本文详细介绍了ArrayList对象的使用方法,包括创建动态数组列表、作为队列或栈的应用方式,以及支持的排序功能。此外还提供了示例代码,展示了如何初始化、添加元素、排序等常见操作。
ArrayList对象

简介:创建数组列表对象,支持动态添加、移除,也可以当队列或者栈来用,支持排序

原型:Function ArrayList(vType As VbVarType, ParamArray P() As Variant) As cArrayList

简介:
什么是ArrayList?使用大小会根据需要动态增加的数组。

什么是队列? 队列用来保持数据项目的先进先出(FIFO)顺序。

什么是栈?栈是一种特殊的表,这种表只在表头进行插入和删除操作。因此,表头对于栈来说具有特殊的意义,称为栈顶。相应地,表尾称为栈底。不含任何元素的栈称为空栈。保持项目的后进先出顺序

方法:
add
原型:Sub Add(V, [BeforeIndex As Long = -1])
说明:V 支持vb能支持的所有数据类型,可以把一个object或数组当成一个元素添加进去。
         BeforeIndex 已存在某个数据的index之前插入,此时add方法变成insert。

例子:
     Option Explicit
     Sub mytest()
     Dim arr1(1 To 10, 1 To 10), arr2, myarralist As New cArrayList, i&, j&, k&
     k = 0
     For i = 1 To 10
         For j = 1 To 10
         arr1(i, j) = k
         k = k + 1
       Next
     Next i
     myarralist.Init vbVariant
     myarralist.Add arr1
     For i = 1 To 100
     myarralist.Add i, 1   '这里用的是倒序插入。如果参数-1则是正序
     Next i
     Debug.Print myarralist.Count
     arr2 = myarralist.Item(0)
     Debug.Print arr2(9, 9)
     debug.print myarralist.item(100)
     set myarralist=Nothing
     End Sub

AddElements
原型:Function AddElements(SrcArray, [SrcElementsStartIndex], [SrcElementsToAdd], [AddBeforeDstIndex]) As Long

说明:

BindToArray
原型:Function BindToArray(Arr, [ArrayLBound As Long]) As Boolean
Clone
原型:Function Clone() As cArrayList
CopyToArray
原型:Function CopyToArray(Arr, [ArrayLBound As Long]) As Boolean
DeQueue
原型:Function DeQueue()
说明:从ArrayList对象中移除第一个元素,并返回该元素。
Init
原型:Sub Init(vType As VbVarType, ParamArray P() As Variant)
说明: 初始化。任何时候使用AarrayList都必须先初始化。
MakeLCID
原型:Function MakeLCID(LangID As LangIDs, [SortID As SortIDs = SORT_DEFAULT]) As Long
Pop
原型:Function Pop()
Push
原型:Sub Push(V)

Queue
原型:Sub Queue(V)
ReleaseArrayBinding
原型:Sub ReleaseArrayBinding(Arr)
Remove
原型:Sub Remove(ZeroBasedIndex As Long)
RemoveAll
原型:Sub RemoveAll()
RemoveElements
原型:Function RemoveElements(FromZeroBasedIndex, ElementsToRemove As Long) As Long
Sort
原型:Sub Sort([Flags As CmpFlags], [lcid As LCIDs], [Comparer As IComparer])

属性
Content
原型:Property Content As Byte()
Count
Property Count As Long
ElementSize
原型: Property ElementSize As Long   只读
Item
原型:Property Item(ZeroBasedIndex As Long)
vType
原型:Property vType As VbVarType  只读
 

转载于:https://www.cnblogs.com/Spacecup/p/3488599.html

说明: 1此程序由ecz00程序优化而来 地址 http://download.youkuaiyun.com/download/ecz00/9403630 因此程序可以说是网上唯一的tcpclient使用的中文案例,提供了我思路,在此感谢 ;为什么用这个插件,vb自带的插件winsock 这么有用的插件 居然不是微软自带的插件, 最要命的是 直接注册ocx控件 win7 win10上可能因为序列号无法注册,那么vb下如何开发ip客户端,变得很麻烦,尝试过APi方法的,但是过于复杂,程序量太大,比较麻烦,因此用 此方案比较可行,在原版的基础上花了5天时间摸索和优化, 此版本使用方法 1 把vbRichClient5.dll放进C:\Windows\SysWOW64 (64位系统) 2 在vb6中点击 工程->引用 把上面的dll引用进来就可以额,不需要注册 3:使用sscom5.12.1 或其他tcp调试软件软件启动tcpserver 地址是127,0,0,1 5676 4:直接运行本软件即可使用。点击连接,显示成功,说明连接成功,可以相互发送数据了 服务端的程序在原版上未做修改,请自行优化 此软件改进了原版 1:无法显示连接状态和错误信息 2:只能发送不能接收 3:使用主机名的连接方式,无法直接使用,一开始 4:无法显示byte值 5:界面修改 6:连接的时候,不断开以前的连接,造成重复连接 提示 vbRichClient5的手册找遍了都找不到,估计作者都没写,更别想有中文版了,所以只能 在vb6中点击视图-》对象窗口,可显示vbRichClient5.dll 所有的类和方法 QQ175891641 2018-2-15优化
发现网上关于vbrichclient教程比较少,但这个实在是好东西,实用性,稳定性都比VB自带的winsock好的多,多客户端不用winsock控件数组。 也不用在各窗体上放winsock,直接在模块中就能实现收发 下面直接上代码,窗体和文本钮、按钮大家自行拖放。要用到VB自带隐藏函数varptr()取内存指针(VbMsdn中没有这个函数,实际上很简单^^)。 VbRichClient5.0.38中包含sqlite3.9支持 上面共享中也包含VbRichClient5.0.38支持库 VbRichClient代替winsock 主要使用 cTCPServer cTCPClient cUDP '--------------------------------------------------------------------- '服务器端,代码最简化,要实现多客户端只要用数组存hsocket就可以 Option Explicit Dim WithEvents sv As cTCPServer Dim WithEvents udp1 As cUDP Dim cHsocket& Private Sub Form_Load() Set sv = New cTCPServer sv.Listen sv.GetHost("127.0.0.1"), 35912 Debug.Print sv.GetHost("") Set udp1 = New cUDP udp1.Bind "127.0.0.1", 5616 End Sub Private Sub sv_DataArrival(ByVal hSocket As Long, ByVal BytesTotal As Long, ByVal FirstBufferAfterOverflow As Boolean) Dim d() As Byte, s$ ReDim d(BytesTotal - 1) sv.GetData hSocket, VarPtr(d(0)), BytesTotal '★★关键代码 s = d Text2.Text = Text2.Text & s & vbCrLf Debug.Print "收到:" & BytesTotal End Sub Private Sub sv_TCPAccepted(ByVal hSocket As Long) cHsocket = hSocket Text1.Text = Text1.Text & sv.GetPeerHostIPAndPort(hSocket) & vbCrLf End Sub Private Sub sv_TCPDisConnect(ByVal hSocket As Long) Text3.Text = Text3.Text & sv.GetPeerHostIPAndPort(hSocket) & vbCrLf End Sub Private Sub udp1_NewDatagram(ByVal BytesTotal As Long, ByVal FirstBufferAfterOverflow As Boolean) Dim d() As Byte, s$ ReDim d(BytesTotal - 1) udp1.GetData VarPtr(d(0)), BytesTotal s = d Text2.Text = Text2.Text & s & vbCrLf End Sub '------------------------------------------------------- '客户端 Option Explicit Dim WithEvents cl As cTCPClient Dim WithEvents udp1 As cUDP Dim cid& Private Sub Command1_Click() cid = cl.Connect("QgB1", 35912) End Sub Private Sub Command2_Click() cl.Disconnect cid End Sub Private Sub Command3_Click() Dim b() As Byte b = Text1.Text cl.SendData cid, VarPtr(b(0)), UBound(b) + 1 End Sub Private Sub Command4_Click() Dim d() As Byte, s$ s = "yessss" d = s udp1.RemoteIP = "127.0.0.1" udp1.RemotePort = 5616 u
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值