Hallo alle AVRco-User,
hallo Rolf,
ein gutes, neues Jahr euch allen!
Nach den guten Wünschen habe ich noch ein kleines Problem beim IN Operator - im Falle von mehreren Bereichs-Abfragen. Je nach Variablen-Typ funktioniert die Abfrage korrekt - oder eben nicht. Das folgende Beispiel verdeutlicht es vielleicht:
[code]
lBy0 := 50; // Byte-Variable
lWo := 1234; // Word-Variable
lLW := 12345678; // LongWord-Variable
if lBy0 In [1..3,49..51] Then
SLIP_WriteStr('TXT|50 ist drin!'); // Abfrage landet hier - OK.
else
SLIP_WriteStr('TXT|50 ist NICHT drin!');
endif;
if lWo In [1..3,1230..1239] Then
SLIP_WriteStr('TXT|1234 ist drin!');
else
SLIP_WriteStr('TXT|1234 ist NICHT drin!'); // Abfrage landet hier!!!! Nicht OK.
endif;
if lLW In [1..3,12345670..12345679] Then
SLIP_WriteStr('TXT|12345678 ist drin!');
else
SLIP_WriteStr('TXT|12345678 ist NICHT drin!'); // Abfrage landet hier!!!! Nicht OK.
endif;
if lLW In [12345670..12345679] Then
SLIP_WriteStr('TXT|12345678 ist drin!'); // Abfrage landet hier. OK.
else
SLIP_WriteStr('TXT|12345678 ist NICHT drin!');
endif;
[/code]
Dieser Code gibt folgende Ausgabe:
50 ist drin!
1234 ist NICHT drin!
12345678 ist NICHT drin!
12345678 ist drin!
Man sieht, daß es bei einer Byte-Variablen geht, bei Word oder Longword-Variablen jedoch nicht. Wenn aber z.B. nur ein einzelner Bereich beim LongWord abgefragt wird, dann geht es doch.
Ich hoffe, ich habe das Problem rübergebracht.
Grüße, Michael
hallo Rolf,
ein gutes, neues Jahr euch allen!
Nach den guten Wünschen habe ich noch ein kleines Problem beim IN Operator - im Falle von mehreren Bereichs-Abfragen. Je nach Variablen-Typ funktioniert die Abfrage korrekt - oder eben nicht. Das folgende Beispiel verdeutlicht es vielleicht:
[code]
lBy0 := 50; // Byte-Variable
lWo := 1234; // Word-Variable
lLW := 12345678; // LongWord-Variable
if lBy0 In [1..3,49..51] Then
SLIP_WriteStr('TXT|50 ist drin!'); // Abfrage landet hier - OK.
else
SLIP_WriteStr('TXT|50 ist NICHT drin!');
endif;
if lWo In [1..3,1230..1239] Then
SLIP_WriteStr('TXT|1234 ist drin!');
else
SLIP_WriteStr('TXT|1234 ist NICHT drin!'); // Abfrage landet hier!!!! Nicht OK.
endif;
if lLW In [1..3,12345670..12345679] Then
SLIP_WriteStr('TXT|12345678 ist drin!');
else
SLIP_WriteStr('TXT|12345678 ist NICHT drin!'); // Abfrage landet hier!!!! Nicht OK.
endif;
if lLW In [12345670..12345679] Then
SLIP_WriteStr('TXT|12345678 ist drin!'); // Abfrage landet hier. OK.
else
SLIP_WriteStr('TXT|12345678 ist NICHT drin!');
endif;
[/code]
Dieser Code gibt folgende Ausgabe:
50 ist drin!
1234 ist NICHT drin!
12345678 ist NICHT drin!
12345678 ist drin!
Man sieht, daß es bei einer Byte-Variablen geht, bei Word oder Longword-Variablen jedoch nicht. Wenn aber z.B. nur ein einzelner Bereich beim LongWord abgefragt wird, dann geht es doch.
Ich hoffe, ich habe das Problem rübergebracht.
Grüße, Michael