Avatar billede darth-domino Nybegynder
01. august 2005 - 08:41 Der er 12 kommentarer og
1 løsning

Trim funktion

Jeg har en liste hvor der eks står:

WFF: 4554656
FFF: 784512
WFF: VHG4578.4512
SSS: 7845-VH

Det eneste der er 100% sikkert, er at der er 3 cifre, en kollon, og så et nummer.

Jeg vil gerne have delt det op i 2 variabler, hvad de 3 cifre er og så det nummer der står bagerst...

Hvordan kan jeg gøre det???
Avatar billede hiks Nybegynder
01. august 2005 - 09:33 #1
hej

du kan vel altid bruge en split hvis altså der ikke indgår et kolon på noget tidspunkt i nummeret. Det er ikke så kønt men det virker da... :o)

Private Sub Form_Load()

    Dim strListe As String
    strListe = "WFF: 4554656" & vbCrLf & _
              "FFF: 784512" & vbCrLf & _
              "WFF: VHG4578 0.4512" & vbCrLf & _
              "SSS: 7845-VH"

    arrliste = Split(strListe, ":")
   
    For i = LBound(arrliste) To UBound(arrliste)
        Debug.Print Trim(Replace(arrliste(i), vbCrLf, ""))
    Next
   
End Sub

/hiks
Avatar billede hiks Nybegynder
01. august 2005 - 09:41 #2
eller:

Private Sub Form_Load()

    Dim strListe As String
    strListe = "WFF: 4554656" & vbCrLf & _
              "FFF: 784512" & vbCrLf & _
              "WFF: VHG4578 0.4512" & vbCrLf & _
              "SSS: 7845-VH"

    arrListe = Split(strListe, vbCrLf)
   
    For i = LBound(arrListe) To UBound(arrListe)
        Debug.Print SplitLinie(arrListe(i))
    Next
   
End Sub

Private Function SplitLinie(ByVal strLinie As String) As String
   
    Dim part1 As String, part2 As String
    SplitLinie = strLinie
   
    part1 = Mid(SplitLinie, 1, 3)
    part2 = Mid(SplitLinie, 6, Len(SplitLinie))

    SplitLinie = part1 & "-" & part2
   
End Function

/hiks
Avatar billede martin_moth Mester
01. august 2005 - 23:02 #3
Ovenstående omskrevet en smule, så den er lidt "pænere" / virker i mere generelle tilfælde.

F.eks. hvis der er flere end et mellemrum mellem kolon og første ciffer i tallet - eller før kolon... (er der det, vil ovenstående nemlig ikke virke, da den f.eks. altid tager tallet startende ved den 6. karakter i variablen splitline - mangler f.eks. mellemrummet efter kolon, vil første ciffer derfor ikke komme med)

Private Function SplitLinie(ByVal strLinie As String, SplitChar as string) As String
   
    Dim part1 As String
    Dim part2 As String
    Dim SplitPosition as Long
   
    SplitPosition = Instr(strLinie, splitchar) 'Finder positionen af kolon
   
    part1 = Mid(strLinie, 1, SplitPosition) 'Fra start frem til kolon
    part2 = Mid(strLinie, SplitPosition) 'Fra kolon til slut

    SplitLinie = part1 & "-" & part2
End Function



Altsammen blot en kommentar til hiks's svar.
Avatar billede martin_moth Mester
01. august 2005 - 23:05 #4
Funktioner til at manipulere strenge - meget nyttige:

Trim
LTrim
Rtrim
Mid
InStr
InStrRev
Split
Right
Left
len
Avatar billede darth-domino Nybegynder
02. august 2005 - 12:57 #5
hiks, den først virkede fint!
Avatar billede martin_moth Mester
02. august 2005 - 13:04 #6
darth-domino: Det hele virker. Det er 3 forskellige alternativer...
Avatar billede darth-domino Nybegynder
02. august 2005 - 13:33 #7
Så må I jo ligge et svar, så I kan få point!
Avatar billede martin_moth Mester
02. august 2005 - 15:29 #8
Jeg omskrev blot svar fra hiks. Alle points til ham/hende(den/det)

Du skulle bare forstå, at det var 3 alternativer - hvor du så vælger det du synes passer bedst til din øvrige kode. Min kommentar var et forsøg på at give et godt tip, så funktionen ikke er så afhængig af at dine data har et specielt format. Du ved, et forsøg på at lære fra sig ;o)
Avatar billede darth-domino Nybegynder
02. august 2005 - 15:56 #9
oki
Avatar billede hiks Nybegynder
02. august 2005 - 22:10 #10
martin_moth>> jeg foretrækker den... Jeg tror sgu ikke - jeg er menneskelig... :o)

Jeg kan jo så tilføje, at jeg kun leverer "tænk-selv-kode" - :o)

/hiks
Avatar billede martin_moth Mester
09. august 2005 - 16:36 #11
forstår ikke sætningen :" jeg foretrækker den ("den?")... Jeg tror sgu ikke - jeg er menneskelig..." ?
Avatar billede hiks Nybegynder
09. august 2005 - 16:41 #12
ja du skrev: Alle points til ham/hende(den/det)

Og jeg vil foretrække at blive tituleret "den". :)

/hiks
Avatar billede martin_moth Mester
10. august 2005 - 07:04 #13
nå ja ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester