|
-
May 15th, 2011, 04:44 AM
#1
Thread Starter
Hyperactive Member
[RESOLVED] RichTextBox find extract ?
Ok I receive info info in my richtectbox and it look's like this
Code:
Progress.....: 3264512000000/1000000000000000 (12.33%)
HW.Monitor.#1: 99% GHW, 76c Temp
HW.Monitor.#2: 98% GHW, 72c Temp
HW.Monitor.#3: 97% GHW, 75c Temp
HW.Monitor.#4: 96% GHW, 65c Temp
what I need only is percentage (12.33) to be extracted to txt1
from HW.Monitor#1 only temp as value "76" to txt2
from HW.Monitor#2 only temp as value "72" to txt3
from HW.Monitor#3 only temp as value "75" to txt4
from HW.Monitor#4 only temp as value "65" to txt5
-
May 15th, 2011, 07:37 AM
#2
Re: RichTextBox find extract ?
Hmm, just some string manipulation:
Code:
Private Sub Form_Load()
Dim Arr() As String
Dim Txt As String
Dim i As Long
Dim op As Long
Dim cp As Long
Txt = "Progress.....: 3264512000000/1000000000000000 (12.33%)" & vbNewLine & _
"HW.Monitor.#1: 99% GHW, 76c Temp" & vbNewLine & _
"HW.Monitor.#2: 98% GHW, 72c Temp" & vbNewLine & _
"HW.Monitor.#3: 97% GHW, 75c Temp" & vbNewLine & _
"HW.Monitor.#4: 96% GHW, 65c Temp"
Arr = Split(Txt, vbNewLine)
op = InStrRev(Arr(0), "(")
cp = InStr(op + 1, Arr(0), ")")
Debug.Print Mid$(Arr(0), op + 1, cp - op - 2)
For i = 1 To UBound(Arr)
Debug.Print Left$(Split(Arr(i))(3), 2)
Next
End Sub
-
May 15th, 2011, 07:54 AM
#3
Re: RichTextBox find extract ?
The code would be shorter if your textboxes were a control array
VB Code:
Dim lngPos1 As Long Dim lngPos2 As Long lngPos1 = InStr(1, RichTextBox1.Text, "%") lngPos2 = InStrRev(RichTextBox1.Text, "(", lngPos1) Txt1.Text = Mid$(RichTextBox1.Text, lngPos2 + 1, lngPos1 - lngPos2 - 1) lngPos1 = InStr(1, RichTextBox1.Text, "GHW, ") lngPos1 = lngPos1 + Len("GHW, ") - 1 lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c") Txt2.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1) lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ") lngPos1 = lngPos1 + Len("GHW, ") - 1 lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c") Txt3.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1) lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ") lngPos1 = lngPos1 + Len("GHW, ") - 1 lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c") Txt4.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1) lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ") lngPos1 = lngPos1 + Len("GHW, ") - 1 lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c") Txt5.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1)
-
May 15th, 2011, 10:03 AM
#4
Thread Starter
Hyperactive Member
Re: RichTextBox find extract ?
But i receive more info in my richtextbox, I want only to extract temp value and progress !
So need to find only this line and extract thouse value.
I try with your code but not working correctly
-
May 15th, 2011, 10:13 AM
#5
Thread Starter
Hyperactive Member
Re: RichTextBox find extract ?
 Originally Posted by MartinLiss
The code would be shorter if your textboxes were a control array
VB Code:
Dim lngPos1 As Long Dim lngPos2 As Long lngPos1 = InStr(1, RichTextBox1.Text, "%") lngPos2 = InStrRev(RichTextBox1.Text, "(", lngPos1) Txt1.Text = Mid$(RichTextBox1.Text, lngPos2 + 1, lngPos1 - lngPos2 - 1) lngPos1 = InStr(1, RichTextBox1.Text, "GHW, ") lngPos1 = lngPos1 + Len("GHW, ") - 1 lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c") Txt2.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1) lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ") lngPos1 = lngPos1 + Len("GHW, ") - 1 lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c") Txt3.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1) lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ") lngPos1 = lngPos1 + Len("GHW, ") - 1 lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c") Txt4.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1) lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ") lngPos1 = lngPos1 + Len("GHW, ") - 1 lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c") Txt5.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1)
I just checked again, your code working fine, but what about if I
have only
Code:
Progress.....: 3264512000000/1000000000000000 (12.33%)
HW.Monitor.#1: 99% GHW, 76c Temp
HW.Monitor.#2: 98% GHW, 72c Temp
or
Code:
Progress.....: 3264512000000/1000000000000000 (12.33%)
HW.Monitor.#1: 99% GHW, 76c Temp
HW.Monitor.#2: 98% GHW, 72c Temp
HW.Monitor.#3: 97% GHW, 75c Temp
when I receive info or only 1
Code:
Progress.....: 3264512000000/1000000000000000 (12.33%)
HW.Monitor.#1: 99% GHW, 76c Temp
so how many HW.Monitor lines will find only for them to extract value's
max is 4 GHW
Last edited by VB Client/Server; May 15th, 2011 at 10:16 AM.
-
May 15th, 2011, 10:17 AM
#6
Re: RichTextBox find extract ?
For txt2, 3, 4, and 5 do
Code:
lngPos1 = InStr(1, RichTextBox1.Text, "GHW, ")
If lngPos1 > 0 Then
lngPos1 = lngPos1 + Len("GHW, ") - 1
lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c")
Txt2.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1)
End If
-
May 15th, 2011, 10:26 AM
#7
Thread Starter
Hyperactive Member
Re: RichTextBox find extract ?
 Originally Posted by MartinLiss
For txt2, 3, 4, and 5 do
Code:
lngPos1 = InStr(1, RichTextBox1.Text, "GHW, ")
If lngPos1 > 0 Then
lngPos1 = lngPos1 + Len("GHW, ") - 1
lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c")
Txt2.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1)
End If
hm, can U add full code, seems I missing something
-
May 15th, 2011, 10:48 AM
#8
Re: RichTextBox find extract ?
VB Code:
Dim lngPos1 As Long
Dim lngPos2 As Long
lngPos1 = InStr(1, RichTextBox1.Text, "%")
lngPos2 = InStrRev(RichTextBox1.Text, "(", lngPos1)
Txt1.Text = Mid$(RichTextBox1.Text, lngPos2 + 1, lngPos1 - lngPos2 - 1)
lngPos1 = InStr(1, RichTextBox1.Text, "GHW, ")
If lngPos1 > 0 Then
lngPos1 = lngPos1 + Len("GHW, ") - 1
lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c")
Txt2.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1)
End If
lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ")
If lngPos1 > 0 Then
lngPos1 = lngPos1 + Len("GHW, ") - 1
lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c")
Txt3.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1)
End If
lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ")
If lngPos1 > 0 Then
lngPos1 = lngPos1 + Len("GHW, ") - 1
lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c")
Txt4.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1)
End If
lngPos1 = InStr(lngPos2, RichTextBox1.Text, "GHW, ")
If lngPos1 > 0 Then
lngPos1 = lngPos1 + Len("GHW, ") - 1
lngPos2 = InStr(lngPos1, RichTextBox1.Text, "c")
Txt5.Text = Mid$(RichTextBox1.Text, lngPos1, lngPos2 - lngPos1)
End If
-
May 16th, 2011, 12:58 AM
#9
Thread Starter
Hyperactive Member
Re: RichTextBox find extract ?
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|