[VB.NET] Flexibele URL in array zetten

Pagina: 1
Acties:

  • NiMu83
  • Registratie: Januari 2001
  • Laatst online: 18-08-2025
Ik heb een string (_URL) met bijvoorbeeld de volgende inhoud:
http://localhost/test/subsubsite/Shared%20Documents/Forms/AllItems.aspx

Nu wil ik van deze string eigenlijk alleen dit zien:
http://localhost/test/subsubsite

Dit heb ik al opgelost met de volgende code:
Visual Basic .NET:
1
2
3
Dim myarray As String()
        myarray = _URL.Split("/"c)
        url = "http://" + myarray(2) + "/" + myarray(3) + "/"


Hier split ik dus op het "/" teken en kan dus idd "http://localhost/test/subsubsite" tevoorschijn toveren.
Maar nu zit ik met een probleem.
De URL kan er ook als volgt uit zien:
http://localhost/test/subsubsite/subsubsubsite/Shared%20Documents/Forms/AllItems.aspx

En daarmee pak ik dus die laatste "subsubsubsite" niet mee... Het is dus een flexibele URL die extra subsites kan bevatten...maar ook minder subsites zoals:
http://localhost/test/Shared%20Documents/Forms/AllItems.aspx

Heeft iemand een idee hoe ik dit kan oplossen?

Ook wil ik dat het 2-na-laatste item in de string (dus hier: "Shared%20Documents") in een variable wordt gezet... Maar omdat de hele URL flexibel is weet ik niet hoe ik dit moet oplossen.

Even kort:
Van een URL (http://localhost/test/subsubsite/Shared%20Documents/Forms/AllItems.aspx) alle items vanaf "Shared..." eraf, en het 2 na laatste item in de string in een variable...

Hoop dat het voor iedereen duidelijk is!

[ Voor 5% gewijzigd door NiMu83 op 05-11-2003 12:11 ]

Voetbal is de belangrijkste bijzaak in het leven.


  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
code:
1
2
3
4
5
6
x =2
url = "http://"
while myarray(x) <> "Shared%20Documents"
  url=url  + myarray(x) + "/"
  x=x+1
wend


Gaat mislukken wanneer "Shared%20Documents" niet voorkomt in de url. Met een for loop en de grootte van de array kun je het beter maken, maar ik gebruik geen .Net, dus ik weet niet zeker hoe dat moet.

  • guanpedro
  • Registratie: Maart 2002
  • Laatst online: 18-12-2025

guanpedro

Live forever or die trying

wil je altijd Shared%20Documents afvangen? Kan dat ook wat anders zijn?

kan je niet later met substring kijken welke string Shared%20Documents" bevat en deze verwijderen uit de array. Ook kan je dan met substring het laaste item controleren op ".aspx" en dat item apart opslaan

Dat array kan je overigens maken met dit:
Request.Url.Segments (levert een string array terug) alleen is dit zonder hostname en zonder querystring parameters

[ Voor 36% gewijzigd door guanpedro op 05-11-2003 13:27 . Reden: beter gelezen ]

PC: MSI-NEO2FISR P4-2.6HT@2.8 Dual-channel GEIL-PC3500 Intel CSA GB-LAN 9600PRO Pioneer DVR106 Server: Dual Xeon-2GHz 3Ware 7500-12 11x120GB RAID5 GB-LAN RH 9 2.4.22 Digicam: Sony DSC-F717


  • NiMu83
  • Registratie: Januari 2001
  • Laatst online: 18-08-2025
Ik heb het probleem van het 2 na laatste item in die url opgelost door:
myarray(UBound(myarray) - 2)

Dus dat werkt als het goed is.

Ik weet alleen nog niet hoe de gehele url krijg voor dat 2 na laatste item...
Dus "http://localhost/test/subsubsite/Shared%20Documents/Forms/AllItems.aspx" moet "http://localhost/test/subsubsite" worden.

De naam "Shared%20Documents" kan idd ook een andere naam hebben...
Dus eigenlijk moeten de laatste 3 items in die array eraf gehakt worden...

Voetbal is de belangrijkste bijzaak in het leven.


  • NiMu83
  • Registratie: Januari 2001
  • Laatst online: 18-08-2025
Oke het is helemaal opgelost nu...:

Dim i As Integer
For i = 0 To myarray.Length - 4
_SiteUrl += myarray(i) + "/"
Next i

Zo moet het dus... appeltje eitje! :)

In plaats van .Length kan je ook ubound gebruiken...maar .Length is meer VB.NET

Voetbal is de belangrijkste bijzaak in het leven.