PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB 2008] URL in String zerlegen



novedad
15.12.2010, 20:37
Heho

Habe ein Problem

Und zwar möchte ich folgende URL gern Zerlegen:


http://ups.surveyrouter.com/SurveyTrafficUI/STMU
/Page.aspx?pgtid=19&bid=18&cid=7&c=CD8046&ids=571_5956953250b17f2010b3cfa710c34456&utcoffset=-1

Dieser Wert ändert sich immer:


http://ups.surveyrouter.com/SurveyTrafficUI/STMUI/Page.aspx?pgtid=19&bid=18&cid=7&c=CD8046&ids=571_5956953250b17f2010b3cfa710c34456&utcoffset=-1
Und dieser Wert muss auf 23 geändert werden:


http://ups.surveyrouter.com/SurveyTrafficUI/STMUI/Page.aspx?pgtid=19&bid=18&cid=7&c=CD8046&ids=571_5956953250b17f2010b3cfa710c34456&utcoffset=-1


Also müsste die URL so zerlegt werden:


http://ups.surveyrouter.com/SurveyTrafficUI/STMUI/Page.aspx?pgtid=/19/&bid=18&cid=7&c=CD8046&ids=571_/5956953250b17f2010b3cfa710c34456&utcoffset=-1

Wie stelle ich das am besten an?

Hab gegoogelt und rausgefunden, dass das mit Split() machbar ist, aber das ich dazu auch ein Trennzeichen benötige, wo die URL getrennt wird.

Bin aber daraus nicht so richtig schlau geworden :o

Bitte um Hilfe

MfG novedad

inout
15.12.2010, 21:09
Mit System.Uri (http://msdn.microsoft.com/de-de/library/system.uri.aspx) kannst du die URL in die einzelnen Bestandteile zerlegen.
Dann brauchst du nur noch den Pfad mit dem Trennzeichen & splitten, die Werte ändern und die URL wieder zusammensetzen.

Oder einfach ein Regex.Replace anwenden.

BlackHook
15.12.2010, 21:14
RegEx ist die Lösung.
Wenn du deine Frage so gestellt hättest dass ich es verstehe , hätte ich es für dich eben als code gepostet, leider verstehe ich deine Frage nicht, bzw kann ich nicht erkennen welche Werte sich ändern, du hast einfach die gleiche Zeile paar Mal kopiert, eine hat ein / mehr oder weniger, mehr sehe ich nicht.

Richtige Fragestellung --> richtige Antwort.

Du kannst mir eine PN schicken, mit verbesserte Fragestellung.
RegEx ist nicht schwer, schau bei Wiki nach, ist ganz gut beschrieben.

krusty
15.12.2010, 21:20
uuuups, hab mich ein wenig verlesen und was falsches gepostet, vlt hilft dir der Quelltext trozdem.

mit Stringsplitting geht das recht einfach, es gibt auch ne vorgefertigte Funktion glaub ich in .net, aber die kann man sich schnell zusammen bauen:


function TextZwischen(Byval Text1 as string,Byval Text2 as string, Byval OrginalText as string) as string
dim r as string = split(Split(OrginalText,Text1)(1),Text2)(0)
return r
end function(is ausm kopf gemacht)

BlackHook
15.12.2010, 21:24
Mit Split musst du immer einen Trennen nennen, bei RegEx ist es viel komfortabler.
Da kannst du fangen was du willst und wie du willst.
An Jeder Stelle und jeden Wert mit beliebiger Länge.

inout
15.12.2010, 21:27
Eine mögliche halbwegs saubere Lösung wäre:

url = Regex.Replace(url, "pgtid=\d+", "pgtid=23")

whory
21.12.2010, 18:21
bei regex sind nur die pattern das schwrieige... kann dir da ein tut geben