Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Viimeinen rivi

DaZip [21.02.2004 18:34:36]

#

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.

sooda [21.02.2004 18:44:01]

#

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

Antti Laaksonen [21.02.2004 23:29:10]

#

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

setä [22.02.2004 10:20:44]

#

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)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta