Försöker knåpa ihop nåt vettigt och har fastnat i en liten grej, kanske finns det nån som kan hjälpa till. Ingen ?? :-( Något sänthär: kör med en do while tycker jag, snabbast så... Jag tackar både Andreas & Onkelborg för förslagen och kan meddela att efter lite mekande fick jag det att funka..Åter igen. Tackarrrr.Söka labels i RichTextBox
Försöker läsa av inläst text i RTB efter labels som ALLTID är i början på en egen rad och slutar med kolon ":" och ligger i en textmassa som slutar med semikolon ";"
Ex.
R12: bla bla bla bla
bla bla bla bla;
C213: bla bla bla bla bla bla bla
bla bla bla bla bla;
L4: bla bla bla bla bla bla
bla bla bla;
ALLA labels föregås av en vagnretur OCH är i början av en rad OCH slutar med ett kolon. Jag vill lixom plocka ut "Labeln" till en "var" och övrig text (fram till semikolon) i en anna "var".
Någon som har en idé på hur man ska göra ?
Tacksam för allt.
/JuhaSv: Söka labels i RichTextBox
Hittar inget här och hittar inget på nätet, kanske skulle jag postat detta inlägg i "Visual Basic för snorungar" men den kategorin fanns inte :-)
Man har ju glömt en del.
För att återgå till mitt problem, om jag läst in texten i en variabel, hur "loopar" jag igenom texten i variabeln tecken för tecken på enklaste sätt?
/JuhaSv: Söka labels i RichTextBox
<code>
Private Function NewTextLabel(Name As String, Value As String) As TextLabel
Set NewTextLabel = New TextLabel
NewTextLabel.Name = Name
NewTextLabel.Value = Value
End Function
Private Sub Command1_Click()
Dim Line As String
Dim Lines() As String
Dim PosBegin As Long
Dim PosEnd As Long
Dim Index As Long
Dim Label As TextLabel
Dim Labels As Collection
Set Labels = New Collection
Lines = Split(RichTextBox1.Text, vbCrLf)
For Index = 0 To UBound(Lines)
Line = Lines(Index)
PosBegin = InStr(Line, ":")
If PosBegin Then
PosEnd = InStr(Pos, Line, ";")
If PosEnd Then
Labels.Add NewTextLabel(Left(Line, PosBegin - 1), Mid(Line, PosBegin + 1, PosEnd - PosBegin))
End If
End If
Next
For Each Label In Labels
Debug.Print "Name: " & Label.Name
Debug.Print "Value: " & Label.Value
Next
End Sub
</code>
Class: TextLabel
<code>
Public Name As String
Public Value As String
</code>Sv: Söka labels i RichTextBox
du sparar originalet i strTemp
du måste sedan ha lite temp-variabler
dimma också strTemp2 samt strTemp3 och strTemp4
<code>
do while instr(1, strtemp, ":") < instr(1, strtemp, ";" & vbcrlf)
if left(strtemp, 1) <> ":" then
strtemp3 = left(strtemp, instr(1, strtemp, ":"))
strtemp4 = trim(mid(strtemp, instr(1, strtemp, ":") + 1))
strtemp4 = mid(strtemp4, 1, instr(1, strtemp, ";" & vbcrlf - 1))
'strtemp3 = innan kolon (:)
'strtemp4 = mellan kolon (:) och semikolon (;)
end if
strtemp = mid(strtemp, instr(1,strtemp, ";" & vbcrlf) + 3)
loop
</code>Sv: Söka labels i RichTextBox
/Juha