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?
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.
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 SubYksinkertaisinta 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
Minun esimerkkini vain tekee pitkistä väleistä yhden välin. Eikä poista niitä kokonaan.
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 mjJuuh tuo on järkevämpi tapa selvästi :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.