Voisikohan joku selittää suht tarkasti miten textboxin (jossa multiline = true) siällöstä saisi viimeisen rivin? Olen jo muutamat ohjeet katsonut mutta en vieläkään tajua.
suunnilleen näin:
teksti = Text1.text
While Right(teksti, 2) = vbCrLf
teksti = Left(teksti, Len(teksti) - 2) 'mahdolliset ylimääräiset rivivaihdot irti lopusta
Wend
MsgBox Right(teksti, Len(teksti) - InstrRev(teksti, vbCrLf)), , "vika rivi!"tota instrrevin kohtaa voisi muuttaa ehkä sillain että olisi Len(teksti) - InstrRev(teksti, vbCrLf)-1) tai Len(teksti) - InstrRev(teksti, vbCrLf)+1) tai jotain ku en pääse testaamaan ku vb5:ssä ei ole instrreviä :D mutta jotenki tolleen :D
Visual Basicin kuutosversiossa:
Dim vikarivi As String, kohta As Integer
kohta = InStrRev(Text1, vbCrLf)
If kohta = 0 Then
vikarivi = Text1
Else
vikarivi = Mid(Text1, kohta + 2)
End IfVanhemmissa versioissa InStrRev-rivin voi korvata näin (keksiikö joku paremman tavan?):
For kohta = Len(Text1) To 1 Step -1
If Mid(Text1, kohta, 2) = vbCrLf Then
Exit For
End If
NextNuo vinkit edellyttää, että joka rivin perässä on vbCrLf, mutta TextBox rivittää myös automaattisesti. SendKeys-metodilla löytyy viimeisen rivin alku esim. seuraavasti:
Text1.SetFocus
Text1.SelStart = len(Text1) 'viim. rivin loppu
SendKeys "{HOME}", True 'viim. rivin alku
vikarivi = Mid(Text1, Text1.SelStart+1)Aihe on jo aika vanha, joten et voi enää vastata siihen.