Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Välilyönnit pois

kaviaari [29.06.2003 18:33:10]

#

Miten karsitaan muuttujista turhat välilyönnit pois.. ongelma tuli esiin kun kirjoittelin typeä ja stringiin pitää määrittää pituus laitoin 10 koska pisin varastoitava data on kymmenen merkkiä mutta ohjelma ei tunnista lyhempiä merkkijonoja vertailussa(ilmeisestikkin tuon määrittelyn takia) ja haluaisin ennen vertailua karsia nuo pirulliset välilyönnit pois onko tämä mitenkään mahdollista?

odys [29.06.2003 18:41:00]

#

Ainakin stringin edestä ja takaa saa turhat whitespace merkit pois Trim funktiolla, mutta jos haluat turhat välilyönnit myös tekstin välistä kannattaa sinun tehdä for looppi, jolla tarkistat välilyöntejä.

Tähän auttaa Mid funktio.

odys [29.06.2003 19:19:31]

#

Väsäsin nyt sitten tämmösen kun ei ollut muutakaan tekemistä..

Private Sub Form_Activate()
    Dim i As Integer, Merkit1 As String, Merkit2 As String, Merkki As String, Valeja As Integer
    Merkit1 = "O  l  e  n    m  e rkki jon o  :P"
    For i = 1 To Len(Merkit1)
        Merkki = Mid(Merkit1, i, 1)
        If Merkki = " " Then
            Valeja = Valeja + 1
        Else
            Valeja = 0
        End If
        If Valeja < 2 Then
            Merkit2 = Merkit2 + Merkki
        End If
        DoEvents
    Next i
    Print Trim(Merkit2)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    End
End Sub

Antti Laaksonen [01.07.2003 16:32:15]

#

Yksinkertaisinta on kai käyttää Replace-funktiota seuraavaan tapaan:

Dim mj1 As String, mj2 As String
mj1 = "t   e s t    i"
mj2 = Replace(mj1, " ", "")
MsgBox mj2

odys [01.07.2003 16:49:44]

#

Minun esimerkkini vain tekee pitkistä väleistä yhden välin. Eikä poista niitä kokonaan.

Antti Laaksonen [01.07.2003 16:55:26]

#

Siinä tapauksessa:

Dim mj As String
mj = "Liiat      välilyönnit        pois!"
Do Until InStr(mj, "  ") = 0
    mj = Replace(mj, "  ", " ")
Loop
mj = Trim(mj)
MsgBox mj

odys [01.07.2003 16:59:16]

#

Juuh tuo on järkevämpi tapa selvästi :)

Vastaus

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

Tietoa sivustosta