Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 4 von 4

Thema: Zeigerarithmetik in SCL

  1. #1
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    gibt es in SCL die Möglichkeit Zeigerarithmetik zu betreiben ?
    So der Art:
    Adresse2 := Adresse1 + Offset;
    ???
    Hintergrund:
    Ein FB soll ein DB verarbeitung der mehrere Listen mit unterschiedlichen Längen enthält.
    Gruss
    kiestupmpe
    Zitieren Zitieren Zeigerarithmetik in SCL  

  2. #2
    Registriert seit
    18.12.2005
    Beiträge
    71
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo

    Mit etwas Akrobatik geht das schon, wenn die Struktur der Listenelemente bekannt ist und wenn die Listen homogen mit gleichen Elementen aufgebaut ist, dann geht das simpel über Arrays, da kann man dann über die Variation der Indizes den Zugriff gestalten, aber ACHTUNG bei der Typprüfung. Ggf. auch durch Einsatz von ANY-Pointern.

    Ist die Listenstruktur nicht einheitlich aber zur Laufzeit relativ bekannt, dann geht das auch, muß aber mit sehr viel Vorsicht zusammengestrickt werden, da sonst die SPS in den STOP geschickt werden könnte.

    Mehr kann ich da i.A. nicht zu sagen, sonst müsstest du dein Problem etwas näher beschreiben.

    Gruß Barnee

  3. #3
    Avatar von kiestumpe
    kiestumpe ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Hallo Barnee,

    die Struktur ist teilweise variabel.

    Das heist ich habe im DB
    < ... > Mehrere Bytes
    danach fängt die Liste an
    1. Eine Hilfsvariable : WORD
    2. Ein Integer, der die folgende Listenlänge n angbit
    3. Liste:
    3.1 Element 1
    3.2 Element 2
    ...
    3.n Element n

    danach kommt wieder die gleiche Struktur, nur dass n eben diesmal einen anderen Wert hat. Leider kann ich durch dieses Variable n die Sache nicht in einen UDT giessen, sonst wäre der Zugriff leicht durch den Punktoperator möglich.
    Letzlich das Problem, ich übergebe die Adresse der Hilfsvariablen und muss zu dieser etwas Addieren um an die Liste zu kommen. Die Liste soll auf bestimmte Werten durchsucht werden.
    Gruss
    Frank

  4. #4
    Registriert seit
    18.12.2005
    Beiträge
    71
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Das scheint mir so, dass man das sogar ganz elegant mit den Operationen, die auf die Adressregister AR1 bzw. AR2 zugreifen, lösen kann. Bei Anwendung von AR1 bzw. AR2 empfiehlt es sich aber die Inhalte von AR1 bzw. AR2 vorher zu sichern und nach Ausführung der eigenen Manipulation die Inhalte von AR1 bzw. AR2 durch die Sicherung zu restaurieren.
    Wenn du mit der Anwendung von AR1 bzw. AR2 Probleme haben solltest, dann zeig doch mal deine FB-Schnittstelle her und ich stelle dann ein Beispiel ins Forum.

    Gruß Barnee

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •