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 Sub
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
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 mj
Juuh tuo on järkevämpi tapa selvästi :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.