Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
16. Okt 2019
Dann verstehe ich euch tatsächlich nicht und verstehe auch grundsätzlich überhaupt nix mehr.
Wenn ich von Außen 57 lese dann bedeutet das Niveau 1, 4, 5 und 6 sind frei. 2 und 3 noch nicht.
Wie gestaltet sich dann die Abfrage?
if TNiveau.nB in NiveauInt then // das hier dürfe niemals zutreffen, da Niveau 2 (B) nicht freigeschaltet ist.
Include(NiveauSet, TNiveau.nB);
Aber da oben...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
16. Okt 2019
Ich glaube du hast mich nicht verstanden.
Ich speichere gar nix ab. Ich lese nur aus.
Das andere Programm speichert ab mit 1 2 4 8 16 32 und allen Kombinationen daraus. Da kann ich nix dran ändern. Und das muss ich auslesen.
Und da das hier nicht funktioniert bin ich aufgeschmissen
TNiveau = (nA = 1, nB = 2, nC = 4, nD = 8, nE = 16, nF = 32);
TNiveauSet = set of TNiveau;
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
16. Okt 2019
Wenn ins Programm 57 eingelesen wird, wie ermittle ich dann welche Niveaus freigeschaltet wurden bei nur 6 Bit?
Das externe programm speichert Niveau 1 mit 1 ab, 2 mit 2, 3 mit 4, 4 mit 8, 5 mit 16 und 6 mit 32.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
16. Okt 2019
Nimm das nC weg :P Es sind nur Tippfehler im Editor. Das ist so gesehen realer Code nur habe ich die Variablennamen abgeändert. Alle Namen der Deklarationen sind bei mir richtig.
Sowas würde der Compiler als aller erstes bemängeln. Aber es geht nur um diese Umwandlung. Es hakt nur an dieser einen Stelle
NiveauInt := TNiveauSet(StrToInt64Def('57', 0));
Die 57 kommt aus einer Textdatei....
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
16. Okt 2019
Ist nur ein Tippfehler hier im Editor von mir. Da kommt schon ein String rein.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
16. Okt 2019
Habe ich hier einen Denkfehler? Int64 funktioniert auch nicht.
Das Problem ist, dass ich = 1, = 2, = 4 bis 32 angeben muss, da die Werte die von Außen kommen sonst nicht stimmen.
NiveauInt := TNiveauSet(StrToInt64Def(57, 0));
Forum: Algorithmen, Datenstrukturen und Klassendesign
by DieDolly,
16. Okt 2019
Ich habe diese Deklarationen
type
TNiveau = (nA = 1, nB = 2, nC = 4, nC = 8, nD = 16, nE = 32);
TNiveauSet = set of TNiveau;
In einer Procedure lade ich einen Integerwert aus einer Datei der zum Beispiel 57 sein kann in eine Variable NiveauInt.
Mit sowas hier gucke ich, welches Niveau im Set enthalten ist (insgesamt 6x)