Teilstücke von einer Bytefolge auslesen.
-
hallo,
ich habe eine Bytefolge die aus 32 stellen besteht.
ich würde jetzt gerne nacheinander teilstücke aus dieser bytefolge auslesen.
und zwar von 0-8, von 9-16, von 17-24, von 25-32.klar ich könnte das jetzt in eine schleife packen und auslesen, aber da gibt es doch bestimmt eine galantere lösung!

könnte mir dabei jemand helfen?
vielen dank schonmal im voraus...
-
Ist diese Byte-Folge ein Array? Was willst du damit genau machen? Was hat das mit WinAPI zutun?
char bytes[32]; void copy(char *_dest, size_t _from, size_t _to) { memcpy(_dest, bytes + _from, _to - _from); }
-
TyRoXx schrieb:
Was hat das mit WinAPI zutun?
NIX...

-
@rT!f@Ct schrieb:
klar ich könnte das jetzt in eine schleife packen und auslesen, aber da gibt es doch bestimmt eine galantere lösung!.
Kann man bestimmt in C++ auch mit einem Ausdruck ähnlich der Art
boost::extractor_type<cast_operator<flexibility_check::data, int>(voltometer::go(new boost::timer(NULL)))->Ampelsteuerung(new AbstractBytePointer<int32>)
lösen. Frag am besten mal im C++ Forum. Ist einfach übersichtlicher als ne normale Schleife, meinst du nicht?
-
@TyRoXx
danke für deine hilfe...
also ich will damit farbwerte (siehe mein thread choosecolor) in der registry speichern und später eben wieder auslesen und an den choosecolor dlg (benutzerfarben) übergeben.das speichern und auslesen klappt soweit ganz gut,...als byte wert. nur mit der umwandlung von byte in colorref hab ich da noch so meine probleme...
vieleicht erbarmt sich ja jemand und kann mich mal auf den richtigen weg schubsen...
und mit WinApi hat das nicht viel zu tun, auser das ich das für eine classe brauche die auf winapi basiert...
aber so falsch kann das hier ja nun auch nicht sein, denn bislang hat ja den thread noch kein admin verschoben.
-
Hallo.
Aus der MSDN:
typedef DWORD COLORREF;
typedef DWORD* LPCOLORREF;Auch MSDN:
When specifying an explicit RGB color, the COLORREF value has the following hexadecimal form:
0x00bbggrr (<= DWORD)
Mit einem geeigneten (Copy-)Ctor könnte man das überführen in (schon wieder MSDN):
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved; (= 00)
} RGBQUAD;Hat's geholfen?
Gruss von Chess
-
Hallo chezzmatazz...
*lach*
ja hat geholfen wenn auch in einer etwas anderen richtung. ich denke ich war wohl bei der umwandlung (byte/colorref) etwas betriebsblind
es geht bestimmt noch etwas eleganter, aber ich mach es jetzt vorerst mal so...
//Bytefolge aus der Registry BYTE bSyntaxColor[25];//00FF000000FF000000FF000000008000001515A300000000 COLORREF m_crKeywords,m_crDirectives,m_crPragmas,m_crCommands,m_crStrings,m_crCode; BYTE byKeyWords[5],byDirectives[5],byPragmas[5],byComments[5],byStrings[5],byCode[5]; memcpy(byKeyWords, bSyntaxColor, 4);//00FF0000 memcpy(byDirectives, bSyntaxColor + 4, 4);//00FF0000 memcpy(byPragmas, bSyntaxColor + 8, 4);//00FF0000 memcpy(byComments, bSyntaxColor + 12, 4);//00008000 memcpy(byStrings, bSyntaxColor + 16, 4);//001515A3 memcpy(byCode, bSyntaxColor + 20, 4);//00000000 m_crKeywords = RGB(byKeyWords[3],byKeyWords[2],byKeyWords[1]); m_crDirectives = RGB(byDirectives[3],byDirectives[2],byDirectives[1]); m_crPragmas = RGB(byPragmas[3],byPragmas[2],byPragmas[1]); m_crCommands = RGB(byComments[3],byComments[2],byComments[1]); m_crStrings = RGB(byStrings[3],byStrings[2],byStrings[1]); m_crCode = RGB(byCode[3],byCode[2],byCode[1]);danke nochmal für den schubs in die richtige richtung

-
So ein Blödsinn! Ich mache mir jetzt eine Pizza.
-
Darth Vader schrieb:
... Ich mache mir jetzt eine Pizza.
Dann lege original Salami, Pilze, Mozarella, Origana drauf. Der Fragesteller will aber die Pizza (Bytefolge) auseinander dröseln - so habe ich das verstanden. Ist aber eher eine Übungsaufgabe, egal in welcher Programmiersprache. daddeldu
