| 

.NET C# Java Javascript Exception

2
Hallo,
ich bin mal wieder bei einem String gelandet den ich weiterverwenden muss. Der Aufbau des Strings ist folgendermaßen gestaltet:
Dim str As String = "Inhalt1|Inhalt2.1 Inhalt2.2|Inhalt3|Inhalt4
bsp.: Test|0815 4711|C:\Test.txt|STATUS

Meine Frage wäre jetzt, wie ich diese Datei aufsplitten kann jeweils beim senkrechten Strich.
Str1 = Inhalt1, Str2 = Inhalt2.1 & Inhalt2.2, Str3 = Inhalt3 usw.

Hat da jemand ein Tip? Wenn es hilft ich könnte den senkrechten Strich durch jegliche art von Trenner ersetzen.

Danke im vorraus

Spicejam
24.06.2011
spicejam 853 2 6
2 Antworten
6
Dim stringArray = Split(str,"|")


Damit erhälst Du ein Array mit den einzelnen Strings, ganz ohne reguläre Ausdrücke :)

Edit: Sorry, das war das alte VB6-Derivat.
Korrekter wäre wohl

Dim stringArray = str.Split("|")

Wobei Du auch statt einem String ein Char nehmen kannst und die Möglichkeit hast, leere Einträge automatisch zu ignorieren.
24.06.2011
Jens Duczmal 2,6k 1 3 9
Jens Duczmal 2,6k 1 3 9
Beide Varianten gehen unter VB.Net
Floyd 24.06.2011
Das ist mir klar, rate mal, warum ich die erste zuerst gepostet habe :) Danke aber für den Hinweis.
Jens Duczmal 24.06.2011
Vielen dank. Genau das ist, was ich gesucht habe. Ich kann mir sowas einfach nicht merken.
spicejam 25.06.2011
1
Regex würde hier erst ins Spiel kommen, wenn auch "|" im Text enthalten sein darf und auf irgendeine Art und Weise "escaped" wurde. Z.B. durch voranstellen von "\".

Dann könnte es z.B. so aussehen
Dim test = "Inhalt1|Inhalt2.1 Inhalt2.2|Inhalt3\||Inhalt4"
Dim reg = New Regex("(?<!\\)\|")
Dim values = reg.Split(test).Select(Function(p) p.Replace("\|", "|"))
verwenden. Du musst am Ende aber noch in jedem Arrayelement "\|" zu "|" werden lassen (daher die Lambda-Funktion).

Gruß, Wolfgang
12.07.2011
WolfgangKluge 1,0k 2 7

Stelle deine .net-Frage jetzt!