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 If
Vanhemmissa 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 Next
Nuo 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.