tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
259
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tim Bureck Tim Bureck ist offline Mitglied Platin
    Registriert seit
    Apr 2009
    Ort
    Düsseldorf (NRW)
    Beiträge
    508
    Hallo zusammen!

    Vorab: Hier geht's quasi um das umgekehrte Problem aus diesem Topic.

    Es geht also darum die Bytefolge

    Code :
    1
    
    1A46 5AC7

    zu schreiben. Die steht bei mir in einer readonly-Variable:

    Code csharp:
    1
    
    public static readonly String IDENTIFIER = "FZ" + '\xC7';

    Der Code zum Schreiben sieht so aus:

    Code csharp:
    1
    2
    
    this.writer = new BinaryWriter(new FileStream(filePath, FileMode.Create), Encoding.UTF8);
    this.writer.Write(NFZ.IDENTIFIER);

    Das Ergebnis sieht nun leider so aus:

    Code :
    1
    
    1A04 465A C387

    Wobei es mir schlichtweg ein Rätsel ist, wie sich das C3 87 dort einschleicht oder das 04-Byte. Das 1A Byte (Strg+Z) kommt von einer vorherigen Schreibaktion. Hat jemand eine Idee?

    Best regards
    Geändert von Tim Bureck (12.10.10 um 21:50 Uhr)
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Wo die 0x04 her kommt kann ich nicht sagen. Den Code hast du auch nicht gezeigt...

    Allerdings hast du angegeben, das du die Datei in UTF-8 schreiben möchtest und ein 0xC7 (== 199 == 11000111) wird nun mal in UTF-8 als eine Folge von 2 Bytes (da der Wert größer als 127 ist) gespeichert nach dem Muster

    Code :
    1
    2
    3
    
      110***** 10******
         00011   000111
    = 11000011 10000111 == 0xC3 0x87
    Wenn du Bytes schreiben willst, dann schreib doch auch Bytes und nicht Text:
    Code csharp:
    1
    2
    
    byte[] IDENTIFIER =  { (byte)'F', (byte)'Z', 0xC7 };
    writer.Write(IDENIFIER);
    Gruß
    Tim Bureck bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Tim Bureck Tim Bureck ist offline Mitglied Platin
    Registriert seit
    Apr 2009
    Ort
    Düsseldorf (NRW)
    Beiträge
    508
    Die Herleitung hab ich jetzt nicht so ganz verstanden.. das muss ich mir wohl nochmal angucken. Jedenfalls funktioniert es jetzt. Sowohl das 0x04 ist weg als auch das 0xC7 wird korrekt geschrieben.

    Vielen Dank.
     

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 15.10.08, 23:08
  2. Hieroglyphen beim schreiben in Datei
    Von spex im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 28.12.07, 10:51
  3. Antworten: 1
    Letzter Beitrag: 09.02.05, 16:17
  4. Antworten: 3
    Letzter Beitrag: 18.04.04, 16:40
  5. Antworten: 2
    Letzter Beitrag: 16.04.04, 22:07