Byte aus einem ARRAY zuweisen klappt nicht

  • 1
  • 2
  • Seite 1 von 2
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1343
Dabei seit: 02 / 2009
Betreff:

Byte aus einem ARRAY zuweisen klappt nicht

 · 
Gepostet: 28.03.2018 - 20:36 Uhr  ·  #1
Hallo Leute,

entweder sehe ich Heute den "Wald vor lauter Bäumen nicht mehr...." oder ich habe einen kleinen Denkfehler:

Code
procedure CS( var inTxBuffer : Array [0..79]of byte );
var
 xi, zi      : byte;
 tempBCC : byte;

begin
  tempBCC:=0;
    zi:= inTxBuffer[79];
    
for xi:= 0 to zi-1 do
 tempBCC:= tempBCC xor inTxBuffer[xi];
endfor;

end CS;


Warum klappt das nicht? Byte ist doch Byte!

Thorsten
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
miparo
Schreiberling
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 988
Dabei seit: 09 / 2007
Betreff:

Re: Byte aus einem ARRAY zuweisen klappt nicht

 · 
Gepostet: 28.03.2018 - 20:43 Uhr  ·  #2
HI,
bei mir funktioniert das, da muss ein Fehler davor da sein.
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1343
Dabei seit: 02 / 2009
Betreff:

Re: Byte aus einem ARRAY zuweisen klappt nicht

 · 
Gepostet: 28.03.2018 - 20:48 Uhr  ·  #3
Zitat geschrieben von miparo

HI,
bei mir funktioniert das, da muss ein Fehler davor da sein.


Hallo miparo,

schön :-D, also scheint meine Brile noch ok zu sein.

Wenn ich die Funktion ausklammere lässt es sich übersetzen ?!?!?
Und nun...
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Byte aus einem ARRAY zuweisen klappt nicht

 · 
Gepostet: 28.03.2018 - 21:00 Uhr  ·  #4
Hallo Thorsten,

in Funktionen oder Prozeduren sollte man im Header keine Arrays oder Records konstruieren.
Der Arraytyp sollte vorher schon als type deklariert sein. Das ist wahrscheinlich das Problem.

rolf
miparo
Schreiberling
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 988
Dabei seit: 09 / 2007
Betreff:

Re: Byte aus einem ARRAY zuweisen klappt nicht

 · 
Gepostet: 28.03.2018 - 21:06 Uhr  ·  #5
Nö, es funzt auch so wie er es geschrieben hat.
Die Typedefinition vorher ist natürlich immer sauberer.
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1343
Dabei seit: 02 / 2009
Betreff:

Re: Byte aus einem ARRAY zuweisen klappt nicht

 · 
Gepostet: 28.03.2018 - 22:11 Uhr  ·  #6
Zitat geschrieben von rh

Hallo Thorsten,

in Funktionen oder Prozeduren sollte man im Header keine Arrays oder Records konstruieren.
Der Arraytyp sollte vorher schon als type deklariert sein. Das ist wahrscheinlich das Problem.

rolf


Hallo rolf,

Code
type
   TzksBuffer = ARRAY[0..79] of byte;
...
var
   inTxBuffer : TzksBuffer;
..

procedure CS( var inTxBuffer : TzksBuffer );
var
 xi, zi      : byte;
 tempBCC : byte;

begin
  tempBCC:=0;
    zi:= inTxBuffer[79];
    
for xi:= 0 to zi-1 do
 tempBCC:= tempBCC xor inTxBuffer[xi];
endfor;

end CS;

das hatte ich vorher und als es nicht ging habe ich es so geändert.
Aber das geht aucht nicht. Wie gesagt, wenn ich es ausklammere kann ich das Projekt komplett übersetzen (siehe Bild ).

Thorsten

Nachtrag:

Wenn ich aus dem Procedurekopf das VAR entferne, macht er auch.

Code
procedure CS(  inTxBuffer : TzksBuffer );
var
 xi, zi      : byte;
 tempBCC : byte;

begin
 tempBCC:=0;
    zi:= inTxBuffer[79];
    
for xi:= 0 to zi-1 do
 tempBCC:= tempBCC xor inTxBuffer[xi];
endfor;

end CS;


Aber dann greift der Compiler ja nicht direkt drauf zu, wenn ich es richtig verstanden habe, wird hier ein zusätzlicher Speicher angelegt und die Daten werden dort reinkopiert. Und ich schreibe bei Änderungen nicht direkt in den Speicher der Ursprungsdaten. Richtig?
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Byte aus einem ARRAY zuweisen klappt nicht

 · 
Gepostet: 28.03.2018 - 22:21 Uhr  ·  #7
Da läuft irgendwas schief. Ich schaue mir das morgen mal an
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1343
Dabei seit: 02 / 2009
Betreff:

Re: Byte aus einem ARRAY zuweisen klappt nicht

 · 
Gepostet: 28.03.2018 - 22:39 Uhr  ·  #8
Zitat geschrieben von rh

Da läuft irgendwas schief. Ich schaue mir das morgen mal an


Ich habe zum testen mal die komplette Procedure in eine meiner UNITs ausgelagert.
Dann klappt es sofort auch mit der VAR.

Ich lasse die Funktion dann erstmal in der Unit, mal schauen was Du rausfindest :-)
Könnte es evtl. etwas mit den Compiler-Schaltern zu tun haben

Code
{$NOSHADOW}
{ $WG}                     {global Warnings off}


Thorsten
  • 1
  • 2
  • Seite 1 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   141   155 · Page-Gen-Time: 0.074777s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI