12. september 2002 - 21:19 Der er 6 kommentarer og
2 løsninger

Tage første linie (VbCrlf) i en streng og put den i en ny streng.

Hejsa hvorda gør jeg so mder står i
overskriften.

Jeg kan ikke få split() til at virke (måske kan i :) ), og left() kan ikke bruges da jeg ikke kender længden på den første linie.

/Casper
Avatar billede scb Praktikant
12. september 2002 - 21:43 #1
streng = left((len(streng)-2),streng)

len finder længden af din streng
trækker 2 fra og VbCrLf er væk

-SCB
Avatar billede sjh Nybegynder
12. september 2002 - 21:55 #2
Private Sub Form_Load()
Dim strTekst As String
strTekst = "Linje 1" & vbCrLf
strTekst = strTekst & "Linje 2" & vbCrLf
strTekst = strTekst & "Linje 3" & vbCrLf
strTekst = strTekst & "Linje 4" & vbCrLf
strTekst = strTekst & "Linje 5" & vbCrLf
strTekst = strTekst & "Linje 6" & vbCrLf

Text1 = strTekst

Me.Caption = Left(Text1, InStr(1, Text1, vbCrLf) - 1)
End Sub
Avatar billede driis Nybegynder
13. september 2002 - 12:42 #3
Et eksempel i brug af Split(), går ud fra at du har et antal linier i Text1, som du vil splitte :


Private Sub Command1_Click()
Dim Streng As Variant
Dim I As Integer

Streng = Split(Text1.Text, vbCrLf)
I = 0
While Not Streng(I) = ""
    Debug.Print Streng(I)
    I = I + 1
Wend

End Sub
13. september 2002 - 12:51 #4
Okay,
scb din fik jeg ikke til at virke.

strFoersteLinie = Left(strValidKode, InStr(1, strValidKode, vbCrLf) - 1)
Den virker, men kun en gang (det er i en løkke (Do)) næste gang løkken kommer der til siger den "Invalid Proccedure kald ca...".

driis prøver lige din.
13. september 2002 - 12:55 #5
Driis fik heller ikke din til at virke.

jeg har Xantal linier en en string med et X antal tegn på hver linie.

'Første linie
strFoersteLinie = Split(strValidKode, vbCrLf)
ii = 0
While Not strValidKode(ii) = ""
    Debug.Print strValidKode(ii)
    ii = ii + 1
Wend

(brugt ii da jeg ha en integer med II)

For fejl her: While Not strValidKode(ii) = ""

Men som jeg kan forstå det splitter den astrengen op i et array af en slags?
DIn kode bliver lige ledes kørt inde i  en Do løkke (det burde der ikke være noget i vejen for?).
Avatar billede driis Nybegynder
13. september 2002 - 13:09 #6
Split returnerer en værdi af typen Variant. Derfor SKAL du have:
Dim strFoersteLinie As Variant

Hvis du kun er interesseret i den første linie fås den ved:
strFoersteLinie = Split(strValidKode, vbCrLf)
Debug.Print strFoersteLinie(0)    'Element nul af strFoersteLinie indeholder den første linie i strValidKode.

strValidKode skal naturligvis være en streng.
Avatar billede driis Nybegynder
13. september 2002 - 13:11 #7
... Variant kan 'antage form' som en hvilkensomhelst datatype, også et array af strings. Så når du kører:
strFoersteLinie = Split(strValidKode, vbCrLf)

Så bliver strFoersteLinie til et array, hvor element nul indeholder første linie, element 1 indeholder anden linie, osv. osv.
19. september 2002 - 14:41 #8
ah fik sjhs til at virke.
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