# Struct of Byte in ein Array of Byte

**URL:** <https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837>\
**Category:** Modulentwicklung / Module Development\
**Created:** [18. Mai 2010 um 07:49 UTC](https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837 "2010-05-18T07:49:12Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Frischling](https://avatars.discourse-cdn.com/v4/letter/f/e19b73/32.png) [@Frischling](https://oscat.discourse.group/u/Frischling)\
**Post date:** [18. Mai 2010 um 07:49 UTC](https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837/1 "2010-05-18T07:49:12Z")

</div>

Hallo habe ein Problem für euch sicherlich leicht zu lösen!

jedoch ich brauch Hilfe dabei !!!

habe eine Struktur in der nur Byte werte enthalten sind diese möchte ich gern in ein Array of Byte gleicher größe bringen und ausgeben. Dann soll das Array bearbeitet werden und danach wieder das Array of Byte in die Struktur geschrieben werden.

Ich könnte sozusagen zwei Wandlerfunktionen brauchen die Struct\_to\_Array und Array\_to\_Struct!

Könnte mir jemand einen solchen Code zuverfügungstellen?  
oder bei der Lösung helfen

---

<div class="post-metadata">

**Author:** ![hugo](https://yyz2.discourse-cdn.com/free1/user_avatar/oscat.discourse.group/hugo/32/133_2.png) [@hugo](https://oscat.discourse.group/u/hugo)\
**Post date:** [18. Mai 2010 um 09:57 UTC](https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837/2 "2010-05-18T09:57:50Z")

</div>

da musst du schon etwas genauer werden, wie sieht den dein struct aus?

generell sprichst du werte in einer struct wie folgt an:

struktur.wert1 := arrayx[0];  
arrayx[0] := struktur.wert1;

---

<div class="post-metadata">

**Author:** ![Frischling](https://avatars.discourse-cdn.com/v4/letter/f/e19b73/32.png) [@Frischling](https://oscat.discourse.group/u/Frischling)\
**Post date:** [18. Mai 2010 um 10:35 UTC](https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837/3 "2010-05-18T10:35:22Z")

</div>

Hallo Hugo,  
Danke!!!  
aber das ist die Version Zeile für zeile! soviel schreiben wollte ich vermeiden

kann man es nicht so machen das es fortlaufend bis struktur bzw. Array ende erreicht wird.

vieleicht kann man es sogar Parametrierbar machen in dem man die Grösse (Zeilenlänge) ändern kann oder besteht aus Bool oder Real oder sonstigen werten

Meine Struktur ist 128 Byte lang und besteht nur aus Byte’s soll in ein Array aus 128Byte’s soll einfach wie ein Copy programm laufen

Ich hoffe du kannst Mir weiter helfen.

---

<div class="post-metadata">

**Author:** ![Frischling](https://avatars.discourse-cdn.com/v4/letter/f/e19b73/32.png) [@Frischling](https://oscat.discourse.group/u/Frischling)\
**Post date:** [18. Mai 2010 um 10:41 UTC](https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837/4 "2010-05-18T10:41:04Z")

</div>

Sorry die Struktur besteht aus unterschiedlichen Bezeichnern also etwa so: (ein Auszug)

(_Byte 15_) FR\_15 : BYTE; (_Frei_)  
(_Byte 16_) TROG\_NR11 : BYTE; (_Trognummer 1 Teil 1_)  
(_Byte 17_) TROG\_NR12 : BYTE; (_Trognummer 1 Teil 2_)  
(_Byte 18_) TROG\_NR21 : BYTE; (_Trognummer 2 Teil 1_)  
(_Byte 19_) TROG\_NR22 : BYTE; (_Trognummer 2 Teil 2_)  
(_Byte 20_) TROG\_NR31 : BYTE; (_Trognummer 3 Teil 1_)  
(_Byte 21_) TROG\_NR32 : BYTE; (_Trognummer 3 Teil 2_)  
(_Byte 22_) TROG\_NR41 : BYTE; (_Trognummer 4 Teil 1_)  
(_Byte 23_) TROG\_NR42 : BYTE; (_Trognummer 4 Teil 2_)  
(_Byte 24_) FR\_24 : BYTE; (_Frei_)  
(_Byte 25_) FR\_25 : BYTE; (_Frei_)  
(_Byte 26_) FR\_26 : BYTE; (_Frei_)  
(_Byte 27_) FR\_27 : BYTE; (_Frei_)  
(_Byte 28_) FR\_28 : BYTE; (_Frei_)  
(_Byte 29_) FR\_29 : BYTE; (_Frei_)  
(_Byte 30_) BET\_T\_Day : BYTE; (_Betonierzeit Tag_)  
(_Byte 31_) BET\_T\_Month : BYTE; (_Betonierzeit Monat_)  
(_Byte 32_) BET\_T\_Year : BYTE; (\*Betonierzeit Jahr \*)  
(_Byte 33_) BET\_T\_Hour : BYTE; (_Betonierzeit Stunde_)  
(_Byte 34_) BET\_T\_Minute : BYTE; (_Betonierzeit Minute_)

---

<div class="post-metadata">

**Author:** ![peewit](https://avatars.discourse-cdn.com/v4/letter/p/ecc23a/32.png) [@peewit](https://oscat.discourse.group/u/peewit)\
**Post date:** [18. Mai 2010 um 12:05 UTC](https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837/5 "2010-05-18T12:05:23Z")

</div>

hallo

wenn wir davon ausgehen das die strukur und das array gleich viele bytes haben (so sollte es sein !)  
dann kannst du mit einen enifachen datenkopieren mittels pointer das durchführen

hier ein kleinen entwurf (nicht getestet, habe das nur so herunter getippselt !)

* * *

FUNCTION data\_copy : BOOL  
VAR\_INPUT  
Source : DWORD;  
Destination : DWORD;  
Count : UINT;  
END\_VAR  
VAR  
pSource,pDestination : POINTER TO BYTE ;  
x : UINT ;  
END\_VAR

pSource := Source ;  
pDestination := Destination ;  
FOR x := 1 TO Count DO  
pDestination^ := pSource^ ;  
pSource := pSource + 1 ;  
pDestination := pDestination + 1 ;  
END\_FOR  
data\_copy := TRUE;

* * *

das ganze rufst du dann folgend auf

data\_copy(ADR(Source), ADR(Destination), SIZEOF(Source));

wobei source und destination jeweils dein array und struktur bzw umgekehrt sind

viel spass, damit

---

<div class="post-metadata">

**Author:** ![Frischling](https://avatars.discourse-cdn.com/v4/letter/f/e19b73/32.png) [@Frischling](https://oscat.discourse.group/u/Frischling)\
**Post date:** [18. Mai 2010 um 12:08 UTC](https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837/6 "2010-05-18T12:08:29Z")

</div>

Danke Peewit…  
werd es einmal für mich anpassen und ausprobieren! 🙂

---

<div class="post-metadata">

**Author:** ![Frischling](https://avatars.discourse-cdn.com/v4/letter/f/e19b73/32.png) [@Frischling](https://oscat.discourse.group/u/Frischling)\
**Post date:** [3. Juni 2010 um 14:43 UTC](https://oscat.discourse.group/t/struct-of-byte-in-ein-array-of-byte/837/7 "2010-06-03T14:43:04Z")

</div>

Danke peewit,  
dein Code funktioniert einwandfrei 🙂

MfG Frischling
