Autor Beitrag
C#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Mo 13.04.15 13:43 
Guten Tag,

ich suche gerade ein pattern für die String.Format() Funktion. Das Ganze soll wie folgt aussehen:
ausblenden C#-Quelltext
1:
2:
3:
string a = "Test", b = "Eins", c = "Zwei";
string pattern = "{0,-10} {1,-10} {2}";
string.format(pattern, a, b, c);

Das Ergebnis hier sähe ja so aus:
ausblenden Quelltext
1:
Test      Eins      Zwei					


Ich hätte aber gerne, dass mein Ergebnis so aussieht:
ausblenden Quelltext
1:
[Test]    [Eins]    Zwei					


Wenn ich dafür das Pattern so setze:
ausblenden C#-Quelltext
1:
string pattern = "{[0],-10} {[1],-10} {2}";					

erhalte ich leider eine FormatException, weil die Klammern nicht richtig geparst werden. Wenn ich die eckigen Klammern um die geschweifetn Klammern setze, werden sie ja nicht beim padding berücksichtigt.


Ich könnte auch so vorgehen:
ausblenden C#-Quelltext
1:
string.format(pattern, "[" + a + "]""[" + b + "]", c);					

aber das ist erstens nicht sehr schön und zweitens möchte ich, dass das format komplett beeinflussbar bleibt, d.h. dass die eckigen Klammern auch komplett verschwinden könnten.

Das ganze hat den Grund, dass ich ein kleines Logging system in meiner Anwendung habe und den Anzeigestil beeinflussen will. Eine Log-Funktion sieht z.B. so aus:
ausblenden C#-Quelltext
1:
Log.WriteLine(string category, string subCategory, string message)					

Das wären auch meine drei Argumente für die string.Format()-Methode.

Gibt es ein format pattern, mit dem ich die eckigen Klammern rein bekomme?

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 13.04.15 15:10 
Nein.

Für diesen Beitrag haben gedankt: C#
C# Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Mo 13.04.15 15:15 
Schade. Trotzdem danke.

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler