Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

C++ Uebernahme von Daten aus einem Header in ein Array

copykiller / 22 Antworten / Flachansicht Nickles

Möchte die Daten aus der Datei OV.H auslesen und gewisses Parameter in ein Array übertragen.

Das Array sieht so aus:
myMsg.DATA[0]=0x40;
myMsg.DATA[1]=0x07;
myMsg.DATA[2]=0x20;
myMsg.DATA[3]=0x00;
myMsg.DATA[4]=0x00;
myMsg.DATA[5]=0x00;
myMsg.DATA[6]=0x00;
myMsg.DATA[7]=0x00;

Das OV sieht so aus:

struct ov_eintrag ov[MAX_OV_INDEX] =
{{0, 0, RO, 0, 0, 0, 0},
{0x2007, 0, RWZ, 2, 400, 3200, 2000}, //Maximalstrom
{0x2008, 0, RW, 2, 0xCFC0, 0xFFC0, 0xFFC0}, //Offset Iststrom 1
{0x2009, 0, RW, 2, 800, 1200, 1024}, //Korrektur Iststrom 1

möchte z.B. die Daten 0x2007 gesplittet ins Array [2](20) und [1](07)
die "0" in [3] und die "2000" also "0x7D0" in [5](07) und [4](D0).

Wie mach ich das am einfachsten????

Thx im Voraus

bei Antwort benachrichtigen
mr.escape mr.escape
mr.escape copykiller „kann ich den wert von ov i .range also einen beliebigen wert mit einer zahl...“
Optionen
ov[i].range ist als byte definiert und damit i.a. als unsigned char. Das heißt, dass die zulässigen werte zwischen 0 und 255 liegen.
Der vergleich im beispiel ist aber nicht mit zahlen, sondern zeichen. Diese sind auch acht bit lang, aber '4' ist nicht gleich 4 sondern 0x34 also 52.
Syntaktisch (formal) stimmt der code, semantisch (inhaltlich) aber ist evtl. etwas anderes gemeint (im beispiel aus dem ersten posting hat range nur werte zwischen 0 und 2).

mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen