7,762
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Private Sub Command1_Click()
Dim strtest As String
strtest = strtest & "cisco#show processes" & vbCrLf
strtest = strtest & "CPU utilization for five seconds: 2%/1%; one minute: 5%; five minutes: 5%" & vbCrLf
strtest = strtest & "PID QTy PC Runtime (ms) Invoked uSecs Stacks TTY Process" & vbCrLf
strtest = strtest & "1 Cwe 41617E30 0 50 0 5472/6000 0 Chunk Manager" & vbCrLf
strtest = strtest & "2 Csp 4297C14C 59116 25877476 2 2528/3000 0 Load Meter" & vbCrLf
strtest = strtest & vbCrLf
strtest = strtest & vbCrLf
strtest = strtest & "cisco#show mem" & vbCrLf
strtest = strtest & "Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)" & vbCrLf
strtest = strtest & "Processor 4671E7D0 898471984 137597416 760874568 759095384 742587636" & vbCrLf
Debug.Print strtest
Debug.Print "CPU占用率:" & getStrBtween2Key(strtest, "five minutes: ", vbCrLf) 'CPU占用率的前导特征字全文唯一,于是直接找
Dim lngTmp As Long
lngTmp = InStr(1, strtest, "Largest(b)") '获得内存数据的前导特征位置
lngTmp = InStr(lngTmp + 1, strtest, " ")
lngTmp = InStr(lngTmp + 1, strtest, " ")
lngTmp = InStr(lngTmp + 1, strtest, " ") '获取内存数据行第三个空格的起始位置
Debug.Print "内存占用:" & getStrBtween2Key(strtest, " ", " ", lngTmp) '取起始位置开始一个空格为开头,一个空格为结尾,中间的字符串
End Sub
'取输入字符串 strin 从 lngStartFrom 位置开始 前导特征字符串为 strBefore 后缀特征字符串为 strAfter 的字符串
Private Function getStrBtween2Key(strIn As String, strBefore As String, strAfter As String, Optional lngStartFrom As Long = 1) As String
Dim lngStart As Long
Dim lngEnd As Long
lngStart = InStr(lngStartFrom, strIn, strBefore) + Len(strBefore)
lngEnd = InStr(lngStart, strIn, strAfter)
getStrBtween2Key = Mid(strIn, lngStart, lngEnd - lngStart)
End Function