Autor Beitrag
Peter1000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60



BeitragVerfasst: Mi 13.08.14 10:32 
Hallo,

ich moechte ein Byte-Array in einer RichTextBox ausgeben.
Das Array ist relativ groß (100.000 Einträge)

Hier der Code:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
 richTextBox1.Clear();
 for (int vg = 0; vg < 100000; vg++)
 {
     we3 = Convert.ToChar(proband01_array[vg]);
     richTextBox1.Text += Convert.ToString(we3);
 }




Es wird auch alles eingetragen. Das Problem ist, dass es viel zu lange dauert.
gibt es z.b. die Möglichkeit, evtl. erst mal das Array komplett einzutragen und nachher auszugeben,
oder ist ne RichtextBox da generell ungeeignet?

THX

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
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: Mi 13.08.14 11:28 
Das an die RichTextBox dranzustückeln könnte ich mir vorstellen das das problematisch ist.
Jedes 'Text +=' wird ein aktualiseren des Inhalt anstoßen.

Optimaler wäre es vermutlich erstmal das ByteArray in einen anzeigbaren String zu wandeln und das dann anzuzeigen.
Mit einem Dummy Array im Beispiel geht das mehr oder weniger instantan.
ausblenden C#-Quelltext
1:
2:
Byte[] bytes = Enumerable.Range(1100000).Select(i => (byte)i).ToArray(); 
richTextBox1.Text = string.Join("", bytes.Select(x => Convert.ToString(x)));
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4803
Erhaltene Danke: 1060

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 13.08.14 12:20 
Und wenn man Text anfügen möche, immer AppendText benutzen.
Peter1000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60



BeitragVerfasst: Mi 13.08.14 12:41 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
Das an die RichTextBox dranzustückeln könnte ich mir vorstellen das das problematisch ist.
Jedes 'Text +=' wird ein aktualiseren des Inhalt anstoßen.

Optimaler wäre es vermutlich erstmal das ByteArray in einen anzeigbaren String zu wandeln und das dann anzuzeigen.
Mit einem Dummy Array im Beispiel geht das mehr oder weniger instantan.
ausblenden C#-Quelltext
1:
2:
Byte[] bytes = Enumerable.Range(1100000).Select(i => (byte)i).ToArray(); 
richTextBox1.Text = string.Join("", bytes.Select(x => Convert.ToString(x)));


Danke, funzt perfekt!!

ich musste nur Convert.ToString in Convert.ToChar ändern.