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

tnecniv

Treue Seele

  • »tnecniv« ist der Autor dieses Themas

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

1

09.09.2006, 13:59

void* daten verändern

Hi!
Ich lasse meine Daten für eine datei immer byte weise schreiben, so dass ich jedes byte mit einer bestimmten zahl adieren kann. halt so minimal verschlüsslung...
das klappt auch!
blöd ist nur wenn ich die datei dann wieder dynamisch laden will, hab ich halt immer erst die größe ausgelesen, entsprechend viel speicher reserviert und dann alles aufeinmal in diesen speicher gelesen.
Wie kann ich dann aber jetzt die einzelnen bytes wieder in den unverschlüsselten zustand versetzten?
Danke und gruß
Vincent
Sagt der igel zu dem dachs:
willst du größer sein, dann wachs!
- alte Fritz weisheit

Anonymous

unregistriert

2

09.09.2006, 14:01

du addierst auf ein Byte eine bestimmte Zahl?! Was ist wenn das Byte nun 0xFF ist? addierste dann 20 noch drauf? :shock:

tnecniv

Treue Seele

  • »tnecniv« ist der Autor dieses Themas

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

3

09.09.2006, 14:14

naja, das läuft schon...
ich speicher die einzelnen bytes halt in ein unsigned char und dann läuft das doch ganz normal über: 0xFF + 20 = 0x13, wenn ich mich nicht verrechnet habe...?
klar so weit? :D
gruß
Sagt der igel zu dem dachs:
willst du größer sein, dann wachs!
- alte Fritz weisheit

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

4

09.09.2006, 14:21

Wenn ich dein Problem richtig verstanden hab hast du einen void* auf deine Daten und die Anzahl der Bytes und möchtest auf die einzelnen Bytes zugreifen. Also sollte folgendes funktionieren:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
void* data=0;
unsigned long size=0;
unsigned char change;
// data füllen, size festlegen, change festlegen


for (unsigned long i=0; i<size; ++i)
{
  reinterpret_cast<unsigned char*>(data)[i] += change;
}

Anonymous

unregistriert

5

09.09.2006, 14:30

Warum ließt du nicht einfach 2 Byte ein und vertauschst die Endians? Also hier jetzt mit sowas anfangen, nee ist net grade das schöne.

tnecniv

Treue Seele

  • »tnecniv« ist der Autor dieses Themas

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

6

11.09.2006, 15:58

Naja, passt schon!
Also die lösung oben klappt einwandfrei! vielen Dank!
Gruß Vincent
Sagt der igel zu dem dachs:
willst du größer sein, dann wachs!
- alte Fritz weisheit

Werbeanzeige