- #1
K
koksi2
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 16.06.2007
- Beiträge
- 53
- Reaktionspunkte
- 0
HI
ich mache gerade einen c# Kurs und haben als HÜ die aufgabe bekommen einen Titlel zentriert auszugeben.
ich wäre jetzt so an die lösung geganen das ich die länge der zeichen lese und einfach durch 2 nehme
aber jetzt komme ich mit dem letzten vertikalen strich nicht hin da ich da kein pad right nehmen kann.
vielleicht hat da einer ne idee zu wie ich das hinbekomme
const char LO =->\u250C';
const char RO =->\u2510';
const char LU =->\u2514';
const char RU =->\u2518';
const char H =->\u2500';
const char V =->\u2502';
const string Titel = Einführung in die OOP mit C# und dem .Net Framework;
int iLaengetitel = Titel.Length;
int iZentriert = (79 - iLaengetitel) / 2;
Console.WriteLine(iZentriert);
//Nicht 80, weil sonst auto. Leerzeilen
//eingefügt würden...
const int Breite = 79;
// Hinweis: Später, wenn größere Text zusammengesetzt werden
// aus Performancegründen ein Objekt der Klasse
// System.Text.StringBuilder verwenden.
// HÜ : StringBuilder
// Hier noch kein Performance-Verlust...
string Ausgabe = LO + new string(H, Breite - 2) + RO + \r\n;
// Hinweis: new string(H, Breite - 2) führt im Speicher
// zu einem neuen Objekt, das vom Garbage Collector
// entfernt wird. Diese Programmierung ist zulässig,
// weil string kein Dispose besitzt.
// Aber hier...
Ausgabe += V + Titel.PadLeft (Breite-iZentriert ) +V+ \r\n;
// entspricht...
// -----------------------------------------------------------------
// Ausgabe = Ausgabe + V + Titel.PadRight(Breite - 2) + V + \r\n;
// -----------------------------------------------------------------
// wird im Speicher sehr viel herum kopiert... > StringBuilder
Ausgabe += LU + new string(H, Breite - 2) + RU + \r\n; //Zeilenvorschub in der letzten Zeile beabsichtigt...
System.Console.WriteLine(Ausgabe);
// HÜ : Den Titel zentriert ausgeben
ah habs geschaft
ich mache gerade einen c# Kurs und haben als HÜ die aufgabe bekommen einen Titlel zentriert auszugeben.
ich wäre jetzt so an die lösung geganen das ich die länge der zeichen lese und einfach durch 2 nehme
aber jetzt komme ich mit dem letzten vertikalen strich nicht hin da ich da kein pad right nehmen kann.
vielleicht hat da einer ne idee zu wie ich das hinbekomme
const char LO =->\u250C';
const char RO =->\u2510';
const char LU =->\u2514';
const char RU =->\u2518';
const char H =->\u2500';
const char V =->\u2502';
const string Titel = Einführung in die OOP mit C# und dem .Net Framework;
int iLaengetitel = Titel.Length;
int iZentriert = (79 - iLaengetitel) / 2;
Console.WriteLine(iZentriert);
//Nicht 80, weil sonst auto. Leerzeilen
//eingefügt würden...
const int Breite = 79;
// Hinweis: Später, wenn größere Text zusammengesetzt werden
// aus Performancegründen ein Objekt der Klasse
// System.Text.StringBuilder verwenden.
// HÜ : StringBuilder
// Hier noch kein Performance-Verlust...
string Ausgabe = LO + new string(H, Breite - 2) + RO + \r\n;
// Hinweis: new string(H, Breite - 2) führt im Speicher
// zu einem neuen Objekt, das vom Garbage Collector
// entfernt wird. Diese Programmierung ist zulässig,
// weil string kein Dispose besitzt.
// Aber hier...
Ausgabe += V + Titel.PadLeft (Breite-iZentriert ) +V+ \r\n;
// entspricht...
// -----------------------------------------------------------------
// Ausgabe = Ausgabe + V + Titel.PadRight(Breite - 2) + V + \r\n;
// -----------------------------------------------------------------
// wird im Speicher sehr viel herum kopiert... > StringBuilder
Ausgabe += LU + new string(H, Breite - 2) + RU + \r\n; //Zeilenvorschub in der letzten Zeile beabsichtigt...
System.Console.WriteLine(Ausgabe);
// HÜ : Den Titel zentriert ausgeben
ah habs geschaft