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

VB遍历内存,这样行吗?该如何处理

2012-01-10 
VB遍历内存,这样行吗?DimMemStartAsLongDimMemEndAsLong,RealyXYMemAsLongDimiAsSingle,jAsSingle,xAsInte

VB遍历内存,这样行吗?
Dim   MemStart   As   Long
        Dim   MemEnd   As   Long,   RealyXYMem   As   Long
        Dim   i   As   Single,   j   As   Single,   x   As   Integer
        Dim   SeekFlag1   As   String,   SeekFlag2   As   String
        MemStart   =   &H10000
        MemEnd   =   &H77C33FF0
              If   RealyXYMem   =   0   Then
                    For   i   =   MemStart   To   MemEnd   Step   &H1
                            SeekFlag1   =   Chr(CLng(ReadMem(CLng( "&h "   &   i))))
                            If   SeekFlag1   =   "[ "   Then
                                  SeekFlag2   =   " "
                                  For   x   =   1   To   9
                                          SeekFlag2   =   SeekFlag2   &   Chr(ReadMem(CLng( "&h "   &   i)   +   CLng( "&H "   &   x   -   1)))
                                  Next   x
                                  '分析得到的 "[ "号后面的字串
                                  '特征: "[ "   +   数字   +   ". "   +   数字   +   "] "
                                  y   =   InStr(SeekFlag2,   ". ")
                                  If   y   <>   0   Then
                                        If   Left(SeekFlag2,   1)   =   "[ "   And   Right(SeekFlag2,   1)   =   "] "   And   y   <>   0   _
                                              And   InStr( "0123456789 ",   Mid(SeekFlag2,   y   -   1))   <>   0   And   _
                                              InStr( "0123456789 ",   Mid(SeekFlag2,   Len(SeekFlag2)   -   2,   1))   <>   0   Then
                                              RealyXYMem   =   CLng( "&h "   &   i)


                                              GoTo   SeekMemEnd
                                        End   If
                                  End   If
                            End   If
                    Next   i
              End   If
SeekMemEnd:
              If   RealyXYMem   <>   0   Then
                    Label17.Caption   =   " "
                    For   i   =   1   To   9
                            Label17.Caption   =   Label17.Caption   &   Chr(CLng(ReadMem(RealyXYMem   +   CLng( "&H "   &   i   -   1))))
                    Next   i
              End   If


'以上是我的代码..可是不对头..有达人帮我讲下吗???怎么样才行..


[解决办法]
代码有点搞笑^_^
ReadMem每次只能读一个字节,效率太低了!
简单改一下:

Dim i As Long, x As Integer
Dim SeekFlag(8) As Byte, s As String
For i = &H10000 To &H77C33FF0
If ReadMem(i) = 91 Then
For x = 0 To 8
SeekFlag(x) = ReadMem(i + x)
Next
s = StrConv(SeekFlag, vbUnicode)
If s Like "[[]#*#.#*#[]] " Then
Label17.Caption = s
Exit For
End If
End If
Next

热点排行