2011-09-28 55 views
0

所以經過我的腳本運行它執行shell命令的批處理文件:尋找一條線,拉出來的百分比作爲整數

adb shell dumpsys cpuinfo > sample.txt 

然後,如果你打開SAMPLE.TXT你看到這一點:

0% 71/msm_battery: 0% user + 0% kernel <br> 
0% 79/kondemand/0: 0% user + 0% kernel <br> 
0% 115/rild: 0% user + 0% kernel <br> 
0% 118/gpsd: 0% user + 0% kernel <br> 
0% 375/com.android.systemui: 0% user + 0% kernel <br> 
0% 415/com.nuance.nmc.sihome: 0% user + 0% kernel <br> 
0% 498/com.google.process.gapps: 0% user + 0% kernel/faults: 6 minor <br> 
0% 1876/com.wssyncmldm: 0% user + 0% kernel <br> 

即時消息試圖做的是,如果用戶想要com.google.process.gapps它將從文本文件返回0%。然而,這個文本文件每秒更新一次,而com.google.process.gapps並不總是爲0%,並不總是在同一個地方。我已經想出瞭如何搜索com.google.process.gapps並將整行作爲字符串返回,但我還沒有弄清楚的是如何搜索整個文件,並將第一個0%僅返回爲0,一個整數而不是一個字符串。

關於重複我已經有編碼的每一秒的事情,我需要的是幫助搞清楚別擔心是怎麼寫的搜索陣列,併爲返回的第一個值的int

任何人都可以點我正確的方向?

........................................

我不能找出「添加評論」的事情,所以我只是在這裏重新發布。

所以,如果我去了你的代碼,我得到這個:

Dim line As String = TextBox1.Text 'where textbox1 could equal com.google, etc. 
    Dim Matches As MatchCollection = Regex.Matches(line, "[0-9]+%") 
    For Each Match As Match In Matches 
     Dim Percent As Integer = Integer.Parse(Match.Value.TrimEnd("%"c)) 
     TextBox9.Text = Percent 
    Next 

我知道我缺少一個關鍵部分,這是加載整個文本文件。

也許是這樣的:

昏暗searchfile作爲字符串= IO.File.ReadAllLines( 「C:\ sample2.txt」)

但隨後會如何我Regex.matches(行,「[0 -9] +%「)在searchfile「C:\ sample2.txt

再次感謝您的幫助,謝謝

+0

是否要搜索com.google.process.gapps轉換爲int後出現的第一個0%? – Ahmad

回答

0

編輯:要添加到您的ammended問題...

最簡單的方法是使用RegEx。這段代碼將提取每一個整數,後面跟一個%符號作爲整數。

該函數有兩個參數。第一個是搜索字詞,例如標識要閱讀的行的「com.google」。如果找不到該項,該函數將引發一個ArgumentException。第二個參數是要讀取的百分比值。第一個使用0,第二個使用1,第三個使用2。

Imports System.IO 
Imports System.Text.RegularExpressions 

Public Class Form1 

    Public Function GetPercentage(term As String, percentage As Integer) As Integer 

     ' Read all lines from the file. 
     Dim lines As String() = File.ReadAllLines("C:\sample2.txt") 

     ' Find the appropriate line in the file. 
     Dim line As String 
     Using reader As New StreamReader("C:\sample2.txt") 
      Do 
       line = reader.ReadLine() 
       If line Is Nothing Then Throw New ArgumentException("The term was not found.") 
       If line.Contains(term) Then Exit Do 
      Loop 
     End Using 

     ' Extract the percentage value. 
     Dim Matches As MatchCollection = Regex.Matches(line, "[0-9]+%") 
     Dim Match As Match = Matches(percentage) 
     Dim Text As String = Match.Value.TrimEnd("%"c) 
     Return Integer.Parse(Text) 
    End Function 
End Class 
+0

我不能確定這件該死的東西,所以回頭看原始信息 – user967706