Avatar billede telep Nybegynder
07. oktober 2002 - 17:34 Der er 13 kommentarer og
1 løsning

Undersøge tekststreng

Halløj,

Jeg skal undersøge en tekststreng for indhold af en bindestreg "-".

Typisk vil tekststrengen se således ud: "Else - Marie.bat"

Den streng skal så deles op i to strenge. Den ene skal indeholde "Else" og den anden "Marie". " - " skal altså væk og det samme skal ".bat"
Avatar billede joern Nybegynder
07. oktober 2002 - 17:43 #1
Hej.

Hvis det altid er 4 tegn der skal væk (.bat) så:

dinstreng = left(dinstreng, len(dinstreng)-4)
ellers må du teste på 'punktum' f.eks.


a = instr(dinstreng,"-")
venstre = mid(dinstreng, 1, a-1)
højre = mid(dinstreng, a + 1,)

M.v.h.  Jørn
Avatar billede hells Nybegynder
07. oktober 2002 - 17:44 #2
streng = "Else-Marie.bat"
If InStr(streng, "-") Then
    mitarray = Split(streng, "-"=
    nystreng1 = mitarray(0)
    nystreng2 = Left(mitarray(1), len(mitarray(1))-4)
End If
Avatar billede hells Nybegynder
07. oktober 2002 - 17:45 #3
hov:
    mitarray = Split(streng, "-"=
skal være:
    mitarray = Split(streng, "-")
Avatar billede moses Praktikant
07. oktober 2002 - 17:45 #4
Dim Kilde as String
Dim a,b as string
Dim c as long
Dim d as long

Kilde = "Else - Marie.bat"
c = Instr(Kilde,"-")
if c<>0 then
  a = trim(left(Kilde,c-2))
  d = InStr(c,Kilde,".")
  if d<>0 then
    b = trim(mid(Kilde,c+1,d-1))
  endif
endif

a indeholder nu "Else"
b indeholder nu "Marie
Avatar billede joern Nybegynder
07. oktober 2002 - 17:45 #5
Hovsa.

højre = mid(dinstreng, a + 1)  der var et komma for meget.
Avatar billede moses Praktikant
07. oktober 2002 - 17:47 #6
Æv bæv !
Min rutine er bare ligeglad med, hvor langt henne streg og punktum er i strengen. Og desuden tager i andres rutine mellemrumstegnene med !!
Avatar billede moses Praktikant
07. oktober 2002 - 17:48 #7
Og hvis jeg kunne, ville jeg lave det med en meget flottere skrifttype ;-)
Avatar billede telep Nybegynder
07. oktober 2002 - 17:49 #8
hells: forklar lige nærmere, mitarray???
Avatar billede hells Nybegynder
07. oktober 2002 - 17:52 #9
har lige opdaget at dette er visual basic og ikke asp - vbscript, men mitarray er filnavnet delt op i et array. den ene del af arrayet indeholder det, der er før bindestregen, og den anden del indeholder det, der kommer efter.
Avatar billede telep Nybegynder
07. oktober 2002 - 18:00 #10
Nu har jeg selv lavet følgende:

Dim strArtist As String
Dim strTxt As String
Dim intX As Integer
Dim intCount As Integer

File1.ListIndex = 0
intCount = 0

Do While Not intX = 100
    strTxt = File1.FileName

    strArtist = Left(strTxt, intCount + 1)
    strArtist = Right(strArtist, 1)
    intCount = intCount + 1

    If strArtist = "-" Then
        intX = 100
        strArtist = Left(strTxt, intCount - 2)
        List1.AddItem strArtist
    End If
Loop


Nogen der så ved hvordan man finder ud af hvor lang en tekststreng er?
Avatar billede mikker Nybegynder
07. oktober 2002 - 18:20 #11
a = len(streng)

- Mikker
Avatar billede moses Praktikant
07. oktober 2002 - 19:36 #12
Lige et spørgsmål:

HVORFOR AFVISER DU MIT SVAR ?!?!?!?!
Avatar billede joern Nybegynder
07. oktober 2002 - 21:29 #13
Hej telep.

Tak for point.  Med en Ghz-CPU betyder det næppe noget, men det er lidt omstændeligt at læse 1 tegn ad gangen, synes jeg.

Du bør nok svare moses.

M.v.h.  Jørn
Avatar billede telep Nybegynder
07. oktober 2002 - 21:55 #14
Til moses:

Fordi joern's svar var det jeg brugte og desuden er det også det bedste svar!

Til joern:

Selv tak. Jeg bruger din kode!
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