Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

06.04.2011, 14:26

string problem in c#

Ich hätte da ein Problem mit Strings in C#.

Ich schreibe daran daten in einem bestimmten Format binär in eine datei zu schreiben.
Laut spezifikation des Dateiformates müssen strings mit \0 abgeschlossen sein, so wies halt in C auch der fall ist.

Jetzt bekomm ichs einfach nicht auf die reihe, so einen string in c# in meine datei zu schreiben.

hier ein bisschen code:
string usr_text_ = "Test\0";
-->ich brauch auch die länge des strings:
size = usr_text_.Length - 1;
-->und damit schreib ichs dann:
bw.Write(usr_text_);

und so gehts halt leider nicht.
ich denke dass mir da .net meine strings doch noch zurechschneidet, weils eben keine \0 abgeschlossenen strings gibt in c#.

kann mir jemand helfen, wie ich den guten alten char* verwenden kann?

lg

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

06.04.2011, 14:39

BinaryWriter.Write schreibt zuerst die Länge und dann den String. Er ist folgerichtig nicht null-terminiert.

Die Lösung gibt es wie immer einfach per Google:
http://stackoverflow.com/questions/27935…rminated-string

Auch nur auf die Idee zu kommen char* verwenden zu wollen ist meiner Meinung nach schon fast Prügel wert ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

06.04.2011, 15:00

dankeschön...
werde das mal umsetzen und schaun obs funktioniert oder ob noch wo ein bug is...

eine frage hätt ich noch:
BinaryWriter.Write schreibt als erstes Byte die Länge des kommendes Strings?
ist diese Länge mit oder ohne \0 dazugerechnet?
lg

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

06.04.2011, 16:55

Da ein String nicht Null-terminiert ist, wird natürlich auch ohne Null gerechnet.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige