Autor Beitrag
hoxplus
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 14.07.14 19:37 
Hey Leute,

ich habe folgendes Problem: Ich möchte einen String mit tabs ausgeben.
Wenn ich folgendes mache:
ausblenden C#-Quelltext
1:
string xy = "Hallo\tWelt";					

und das dann ausgebe funktioniert es wunderbar.
Mache ich aber folgendes:
ausblenden C#-Quelltext
1:
string xy = String.Format("{0} Hallo\tWelt", iXYvariable);					

und das dann ausgebe funktioniert es nicht. Das ist sehr ärgerlich.

Ich hoffe ihr könnt mir helfen und danke schonmal für eure Bemühungen

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 14.07.14 19:43 
Funktioniert hier wie erwartet? Wie lang ist deine iXYvariable VAriable? Zufällig 3 Zeichen?
hoxplus Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 14.07.14 19:48 
Ist immer unterschiedlich. Meistens aber länger als 3 Zeichen
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 14.07.14 19:51 
Dann sag mal wo du es ausgibst.

In einem Winforms Control kann ich dein Problem nicht nachstellen. Funktioniert wunderbar.
hoxplus Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 14.07.14 20:04 
also ich gebe den string mit System.Drawing.Graphics.DrawString direkt in eine Form aus.
Und ich habe auch noch vergessen zu erwähnen, dass ich mehrere strings mit dem stringbuilder
benuzte. Also so:
ausblenden C#-Quelltext
1:
2:
3:
4:
string xy = String.Format("{0} Hallo\tWelt", wiegehabtvariable);
string xyz = "irgendwas";
sb.AppendLine(xy);
sb.AppendLine(xy);

die ausgabe funktioniert ja auch nur die tabs fehlen

PS: sry ich hab wohl am anfang zu wenig infos zu der situation gegeben

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 14.07.14 20:12 
Ich bekomme das Problem auch nicht reproduziert. Folgender Quelltext tut genau das, was man erwarten würde:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
    private void button1_Click(object sender, EventArgs e)
    {
      var iXYvariable = 5;
      string xy = String.Format("{0} Hallo\tWelt", iXYvariable);
      string xyz = "irgendwas";

      var sb = new StringBuilder();
      sb.AppendLine(xy);
      sb.AppendLine(xyz);

      using (var gr = this.CreateGraphics())
        gr.DrawString(sb.ToString(), new Font("Arial"11), Brushes.Black, new PointF(2020));
    }

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: hoxplus
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 14.07.14 20:12 
Wie nähern uns ;)
Kann ich immer noch nicht nachvollziehen.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
private void Form1_Paint(object sender, PaintEventArgs e)
{
    StringBuilder x = new StringBuilder();
    x.AppendLine("Hallo\tWelt").
      AppendLine(String.Format("{0} Hallo\tWelt"1)).
      AppendLine(String.Format("{0} Hallo\tWelt"12)).
      AppendLine(String.Format("{0} Hallo\tWelt"123)).
      AppendLine(String.Format("{0} Hallo\tWelt"1234));

    e.Graphics.DrawString(x.ToString(), this.Font, new SolidBrush(Color.Black), 1010);
}


Ausgabe

Output
Einloggen, um Attachments anzusehen!

Für diesen Beitrag haben gedankt: hoxplus
hoxplus Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 14.07.14 20:37 
Also ich habe jetzt einmal den von euch geposteten Code in einem neuen
Projekt getestet und bei mir funktioniert er nun auch. Leider hilft mir das
bei meinem Problem mit dem aktuellen Projekt nicht weiter. Darum poste ich
einfach mal den Codeausschnitt wie ich ihn verwende:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
System.Drawing.Graphics formGraphics = this.CreateGraphics();
System.Drawing.Font drawFont = new System.Drawing.Font("TimesNewRoman"18);
System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);
System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat();
drawFormat.Alignment = StringAlignment.Center;
drawFormat.LineAlignment = StringAlignment.Center;

string buffer;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < myClass.iPunkte.Count(); i++) //Bei myClass handelt es sich um eine von mir erstellte Klasse und iPunkte ist eine Liste von integern
{
  buffer = String.Format("{0}.Platz:  {1}\t{2} Punkte", i + 1, myClass.Name[i], myClass.iPunkte[i].ToString()); // Name ist ebenfals eine Liste mit strings
  sb.AppendLine(buffer);
}
formGraphics.DrawString(sb.ToString(), drawFont, drawBrush, Screen.AllScreens[0].WorkingArea, drawFormat);
sb.Clear();
drawFont.Dispose();
drawBrush.Dispose();
formGraphics.Dispose();


Also ich hoffe ihr könnt damit irgendwas anfangen und wie gesagt der Text wird ja auch ausgegeben nur verhält es sich als sei das \t gar nicht da
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 14.07.14 20:45 
Das mit dem Alignment macht irgendwie keinen Sinn. Entweder zentriert ODER an Tab Grenzen ausgerichtet.
Wenn du an Tabs ausrichten willst lass also das StringFormat weg.

Für diesen Beitrag haben gedankt: hoxplus
hoxplus Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 14.07.14 20:56 
DANKE !!!! Es funktioniert!

Hätte man sich aber auch denken können :autsch:


Danke an alle