Avatar billede Slettet bruger
23. marts 2002 - 12:28 Der er 17 kommentarer og
4 løsninger

Nr. 3 / fra venstre

Jeg har en string f.eks.
http://www.jensen.dk/hans_egne/fil2.htm

Det jeg ønsker er at jeg kan få strengen fra 3'e /, altså http://www.jensen.dk/

F.eks. en function
http://www.jensen.dk/hans_egne/fil2.html
=>
http://www.jensen.dk/

Kan det ordnes?
Avatar billede Slettet bruger
23. marts 2002 - 12:30 #1
Ja
Avatar billede Slettet bruger
23. marts 2002 - 12:30 #2
Jeg skal også bruge en func. som udfra http://www.jensen.dk/hans_egne/fil2.html kan udtrække http://www.jensen.dk/hans_egne/
Avatar billede Slettet bruger
23. marts 2002 - 12:31 #3
Okay, næste skridt: Kan det ordnes HER og kan det evt. skrives her :-) ?
Avatar billede sjh Nybegynder
23. marts 2002 - 14:58 #4
mitzy17 >> http://www.jensen.dk/hans_egne/fil2.html => http://www.jensen.dk/



Private Function UrlSplit(ByRef UrlNewFile As String, ByRef UrlFilePath As String)
Dim UrlPos As Long
  If Left$(LCase(UrlNewFile), 7) = "http://" Then
    UrlNewFile = Right$(UrlNewFile, Len(UrlNewFile) - 7)
      ElseIf Left$(LCase(UrlNewFile), 6) = "ftp://" Then
    UrlNewFile = Right$(UrlNewFile, Len(UrlNewFile) - 6)
  End If
    UrlPos = InStr(1, UrlNewFile, "/")
  If UrlPos > 0 Then
    UrlFilePath = Right$(UrlNewFile, Len(UrlNewFile) - UrlPos + 1)
    UrlNewFile = Left$(UrlNewFile, UrlPos - 1)
  End If
End Function

Private Sub Command1_Click()
Dim UrlFilePath As String
Dim UrlNewFile As String
  UrlNewFile = "http://www.jensen.dk/hans_egne/fil2.html"
 
  Call UrlSplit(UrlNewFile, UrlFilePath)
 
  'UrlNewFile er nu www.jensen.dk
  'UrlFilePath er nu /hans_egne/fil2.html
 
  Me.Caption = UrlNewFile & UrlFilePath
End Sub
Avatar billede Slettet bruger
23. marts 2002 - 15:12 #5
Lav en ny form med en label med navnet: Lbl
Et edit felt med navnet:TxtFelt
En knap med navnet StripDom
Dobbeltklik på StripDom knappen og skriv følgende kode:

Private Sub StripDom_Click()
Dom = InStr(8, TxtFelt, "/", 1)
MinStr = Left(TxtFelt, Dom)
Lbl = MinStr
End Sub
Avatar billede sjh Nybegynder
23. marts 2002 - 15:26 #6
' http://www.jensen.dk/hans_egne/fil2.html => fil2.html

Private Sub Form_Load()
Dim strPath  As String
  strPath = "http://www.jensen.dk/hans_egne/fil2.html"
Me.Caption = Right(strPath, Len(strPath) - InStrRev(strPath, "/")) 'Return = fil2.html
End Sub

'InStrRev for vb4-vb5
Public Function InStrRev(StringCheck As String, StringMatch As String, _
                Optional Start As Long = -1, Optional Compare As _
                VbCompareMethod = vbBinaryCompare) As Long
Dim i As Long
  If Compare = vbTextCompare Then
    StringCheck = LCase(StringCheck)
    StringMatch = LCase(StringMatch)
  End If
If Start > -1 And Start > 0 Then StringCheck = Left(StringCheck, Start)
  For i = Len(StringCheck) To 1 Step -1
    If Mid(StringCheck, i, Len(StringMatch)) = StringMatch Then
      Exit For
    End If
  Next
InStrRev = i
End Function
Avatar billede Slettet bruger
23. marts 2002 - 15:29 #7
sjh> Hvorfor så meget kode for en så enkelt funktion??
Avatar billede sjh Nybegynder
23. marts 2002 - 15:41 #8
hvis du tinker på "InStrRev" så er det for de vb4-vb5 ikke har denne funktion.
Avatar billede Slettet bruger
23. marts 2002 - 15:50 #9
Har udvidet koden lidt så den tager højde for meget korte domæne navne:

Lav en ny form med en label med navnet: Lbl
Et edit felt med navnet:TxtFelt
En knap med navnet StripDom

Dobbeltklik på StripDom knappen og skriv følgende kode:

Private Sub StripDom_Click()
If InStr(1, TxtFelt, "http", 1) = 1 Then
Dom = InStr(8, TxtFelt, "/", 1)
MinStr = Left(TxtFelt, Dom)
Else
Dom = InStr(1, TxtFelt, "/", 1)
MinStr = Left(TxtFelt, Dom)
End If
Lbl = MinStr
End Sub
Avatar billede tjacob Juniormester
23. marts 2002 - 16:58 #10
Denne kode kaldes f.eks. fra en knap med:

strOut = StripStr("den streng der skal tjekkes")

Function StripStr(ByVal sStr As String) As String
    Dim i As Integer, j As Integer
   
    j = 0
    For i = 1 To Len(sStr)
        If Mid(sStr, i, 1) = "/" Then j = j + 1
        If j = 3 Then Exit For
    Next i
    If j < 3 Then
        MsgBox "Der er ikke 3 skråstreger i strengen."
        StripStr = "Fejl"
        Exit Function
    End If
    StripStr = Left(sStr, i)

End Function
Avatar billede Slettet bruger
23. marts 2002 - 17:26 #11
Avatar billede tjacob Juniormester
23. marts 2002 - 17:29 #12
Hvis du i en knap skriver:

Private Sub Command1_Click()
    Dim strPath As String, strOut As String

    strPath = "http://www.jensen.dk/hans_egne/fil2.html"
    strOut = StripStr(strPath)

End Sub

Så vil strOut indeholde "http://www.jensen.dk/"

/tjacob
Avatar billede tjacob Juniormester
23. marts 2002 - 17:34 #13
Du skal naturligvis derudover have funtionen StripStr liggende enten i formen eller i et modul.    ;-)tjacob
Avatar billede Slettet bruger
23. marts 2002 - 17:35 #14
Det er meget fint altsammen, og I har alle gjort et godt stykke arbejde. På'en igen:

http://www.jensen.dk/filer/hans/menneske.exe
=>
http://www.jensen.dk/filer/hans/

MiTZY :-)
Avatar billede tjacob Juniormester
23. marts 2002 - 17:56 #15
Den "strip" du lige beskriver indeholder jo 4 "/".
så ændrer du blot koden i funktionen StripStr til:
  If j = 3 Then Exit For
denne linie ændres til if j = 4 osv.

Men hvis du vil lave en funktion, hvor du frit kan vælge hvor mange "/" du vil acceptere, så skal funktionen se sådan ud:

Function StripStr(ByVal sStr As String, ByVal Num as Integer) As String
    Dim i As Integer, j As Integer
   
    j = 0
    For i = 1 To Len(sStr)
        If Mid(sStr, i, 1) = "/" Then j = j + 1
        If j = Num Then Exit For
    Next i
    If j < Num Then
        MsgBox "Der er ikke " & Num & " skråstreger i strengen."
        StripStr = "Fejl"
        Exit Function
    End If
    StripStr = Left(sStr, i)

End Function

Funktionen kaldes så med:

  strPath = "http://www.jensen.dk/hans/menneske.exe"
      strOut = StripStr(strPath, 4)  'hvis der skal være 4 "/"

/tjacob
Avatar billede Slettet bruger
23. marts 2002 - 18:51 #16
tjacob > Ja, men hvordan finder man ud af hvor mange / der er i en string?!?!?!?!
Avatar billede tjacob Juniormester
23. marts 2002 - 19:08 #17
Tja, du kunne bruge en modificeret udgave af StripStr:

Function StripStr(ByVal sStr As String) As Integer
    Dim i As Integer, j As Integer
   
    j = 0
    For i = 1 To Len(sStr)
        If Mid(sStr, i, 1) = "/" Then j = j + 1
    Next i
    StripStr = j

End Function

Vil returnere antal "/" i en streng:

strPath = "http://www.jensen.dk/hans/menneske.exe"
      strOut = StripStr(strPath, 4)  'hvis der skal være 4 "/"
Avatar billede tjacob Juniormester
23. marts 2002 - 19:10 #18
Hov, det gik lige hurtigt nok

    strPath = "http://www.jensen.dk/hans/menneske.exe"
    NumOut = StripStr(strPath) 

NumOut vil indeholde antallet af "/"

/tjacob
Avatar billede tjacob Juniormester
23. marts 2002 - 19:15 #19
>>mitzy17
Jeg skal i byen nu (og drikke mig selv hammerlam), men jeg vil tjekke igen i morgen, og svare (så godt jeg kan). OK?

/tjacob
Avatar billede Slettet bruger
24. marts 2002 - 15:39 #20
>>mitzy17
Kontakt mig venligst på respons@webkurs.dk ang. en gevinst.
Avatar billede peter.erikse Nybegynder
25. marts 2002 - 09:59 #21
Public Function FunkStreg(Tekst)
    Dim I, J, K, Lgd As Long
    J = 1
    Lgd = Len(Tekst)
    For I = 1 To 3
        K = InStr(J, Tekst, "/")
        J = K + 1
    Next
    FunkStreg = Left(Tekst, K)
End Function
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