Entwickler-Ecke

Basistechnologien - Dezimalwert binär in eine Textdatei schreiben


BlackMatrix - Di 14.06.11 15:17
Titel: Dezimalwert binär in eine Textdatei schreiben
Hi.

Ich habe einen Dezimalwert, den ich binär in eine .txt Datei schreiben möchte. Dabei möchte ich, dass der Binärwert 16 Stellen lang und somit fehlende Stellen durch führende Nullen aufgefüllt werden.

Bisher habe ich folgendes gemacht:


C#-Quelltext
1:
2:
            string binary=Convert.ToString(Crc,2);
            Output.Write(ASCIIEncoding.ASCII.GetBytes(binary),0,binary.Length);


MfG BlackMatrix


Th69 - Di 14.06.11 15:47

Hallo,

meinst du

C#-Quelltext
1:
binary = binary.PadLeft(16'0');                    

?


BlackMatrix - Di 14.06.11 15:58

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

meinst du

C#-Quelltext
1:
binary = binary.PadLeft(16'0');                    

?


Genau, also einen Dezimalwert von 1 wollte ich in die Textdatei als:

Zitat:
0000000000000001


schreiben und das tut es :)

Kann man das irgendwie auch anders machen? In der ToString() Methode evtl. schon?


Th69 - Di 14.06.11 17:40

Um nur in die Textdatei zu schreiben, brauchst du natürlich nur

C#-Quelltext
1:
Output.Write(binary);                    

zu schreiben (und nicht erst in ein byte-Array zu verwandeln, denn die Ziffern 0 und 1 gibt es ja auch im Standard-Encoding).
Aber um das Convert.ToString(Crc, 2) kommst du nicht herum, denn für die Dual-Darstellung gibt es keine vorgefertigten Formatierungszeichen.


BlackMatrix - Di 14.06.11 18:21

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Um nur in die Textdatei zu schreiben, brauchst du natürlich nur

C#-Quelltext
1:
Output.Write(binary);                    

zu schreiben (und nicht erst in ein byte-Array zu verwandeln, denn die Ziffern 0 und 1 gibt es ja auch im Standard-Encoding).
Aber um das Convert.ToString(Crc, 2) kommst du nicht herum, denn für die Dual-Darstellung gibt es keine vorgefertigten Formatierungszeichen.


Auch bei einem Streamobjekt? Bei Output handelt es sich um einen Stream, der mir ja nur die Methoden Write oder WriteByte zur Verfügung stellt und mit Write brauche ich ja als ersten Parameter ein bytearray und bei WriteByte müsste ich jeden char des strings mit einer Schleife einzeln in die .txt schreiben.


Th69 - Di 14.06.11 19:08

Hallo,

woher kommt denn dein Stream?
Wenn du ihn selber erstellst, dann benutze doch einfach den StreamWriter, und dieser hat diverse Überladungen für die Write-Methode (u.a. für einen String), s. http://msdn.microsoft.com/de-de/library/6ka1wd3w%28v=VS.80%29.aspx


BlackMatrix - Mi 15.06.11 19:09

Ist ein FileStream und ich lese die Bytes mit ReadByte() aus :) Aber ich lass das erstmal so, vielen Dank.


Th69 - Mi 15.06.11 20:58

Warum einfach, wenn's auch kompliziert geht? :?


BlackMatrix - Do 16.06.11 00:48

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Warum einfach, wenn's auch kompliziert geht? :?


Mir hat sich eher die Frage gestellt, wieso einen StreamWriter und einen StreamReader, wenn mir der Stream an sich schon die Methoden Write und Read liefert :)