Entwickler-Ecke
C# - Die Sprache - Wie zerlege ich folgenden String?
dragi - Mi 29.03.06 08:34
Titel: Wie zerlege ich folgenden String?
Hallo,
kann mir jemnad sagen wie ich aus
in eine Variable Wert habe und in einer zweiten Variable 1. Vor allem wie ich diese Hochkommata loswerde?
Danke
Dragi
jasocul - Mi 29.03.06 09:37
Von welchem Typ ist denn Wert?
Ist es ein numerischer Typ, dann kannst du Wert.ToString() benutzen, um den String zu bekommen.
Ist es ein String-Typ nimm z.B. Convert.ToInt32(Wert).
Coreyl - Mi 29.03.06 09:42
wenn du dann einen string hast, dann such in der msdn mal nach "substring", damit kann man einen string aufteilen in beliebigen arten.
aber:
string Wert = "1"; // hier wird WERT der wert 1 zugeordnet (eins!) und zwar ohne die Klammern. also überprüf ob du nicht schon das hast was du brauchst (console.write(wert) // gibt den inhalt von wert zurück)
Robert_G - Mi 29.03.06 13:46
Wenn du die Werte eines Objektes in der DFM von gestern auslesen willst wäre sowas hier möglich:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| (?<Property> \w* ) \s?\=\s? (?<ValueSection> (?<QuotedValue> \' (?<Value> ( [^\'] | ( \'\' ) | ( \'\#\d+\' ) )+ ) \' ) | (?<Value> \w* ) ) |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| static string ReplaceEscapeCharacter(Match match) { byte ordinal; if (match.Groups["Ascii"].Success && byte.TryParse(match.Groups["Ascii"].Value, out ordinal)) return ((Char)ordinal).ToString(); else return match.Value; }
static string CleanUpValue(string value) { return Regex.Replace(value, @"\'\#(?<Ascii>\d+)\'?", ReplaceEscapeCharacter) .Replace("\'\'", "\'"); }
static void Main() { DfmValuesRegex regex = new DfmValuesRegex(); Dictionary<string, string> propertyValues = new Dictionary<string, string>();
foreach (Match match in regex.Matches(File.ReadAllText("Testfile.txt"))) { if (match.Groups["Property"].Success && match.Groups["ValueSection"].Success) { string propertyName = match.Groups["Property"].Value; string propertyValue = match.Groups["Value"].Value;
propertyValues.Add(propertyName, CleanUpValue(propertyValue)); } }
foreach (KeyValuePair<string, string> property in propertyValues) { Console.WriteLine("{0} = {1}", property.Key, property.Value); } } |
Für sowas kann ich den
Regulator [
http://regex.osherove.com/] empfehlen. :)
Kha - Mi 29.03.06 17:37
Wow, was für ein Tool :) .
Bisher habe ich nur kleine Programme ähnlich wie das #d-Addin gesehen, aber das Ding ist ja schon fast eine eigene IDE :zustimm: .
[edit] Dass es zusätzlich noch auf .NET zugeschnitten ist, macht es natürlich noch genialer. [/edit]
Robert_G - Mi 29.03.06 18:06
Khabarakh hat folgendes geschrieben: |
Wow, was für ein Tool :) .
Bisher habe ich nur kleine Programme ähnlich wie das #d-Addin gesehen, aber das Ding ist ja schon fast eine eigene IDE :zustimm: . |
Es IST eigentlich #d, zumindest der #d Editor. :mrgreen:
Zitat: |
Dass es zusätzlich noch auf .NET zugeschnitten ist, macht es natürlich noch genialer. |
Man kann halt easy komplexe Regechsen in eine Assembly kompostieren.
Im AfterBuild schnell noch ge-IlMerge-t und nacher sieht keiner mehr dass du da eine extra RegEx Assembly< hattest :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!