INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Array durchsuchen und ändern



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

24.10.2014, 14:28 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2014 14:29 von Fry12.)
Beitrag #1

Fry12 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2014

10
2014
EN



Array durchsuchen und ändern
Hallo Leute!

Folgendes Problem: In einem 1D-Array sind eine Reihe von Bytes gespeichert. Die Größe des Arrays ist dabei nicht fest, sondern variabel. Ich möchte nun den Inhalt dieses Arrays nach bestimmten Bytes durchsuchen und sie ggfs. ändern.

Das Ganze soll so ablaufen:
  • Nach dem Byte '0xE' suchen
  • Falls gefunden -> Löschen und den Rest des Arrays an die Stelle des Bytes '0xE' schieben, so dass keine Lücke entsteht
  • Mit dem nächsten Byte fortfahren: Falls zuvor ein '0xE' gefunden wurde, soll das nach '0xE' folgende Byte geändert, d.h. bspw. eine Konstante addiert werden und an die selbe Stelle zurück ins Array geschrieben werden.
Diese Prozedor soll so lange ablaufen, bis kein '0xE' mehr im Array vorhanden ist. Also z.B.:

0xA1 0x31 0x0E 0x13 0xFF -> 0xA1 0x31 0x33 0xFF (hier bspw. mit Addition von 0x20 zu dem Byte, das hinter '0xE' steht)

Wie kann ich das realisieren? Ich bin total ans Programmieren mit C gewohnt und habe die ganze Zeit den Code dazu im Kopf, aber als LabVIEW Neuling tu ich mir schwer, das in LabVIEW grafisch umzusetzen.

Kann mir jemand ein paar Hinweise geben? Bitte keine kompletten Lösungen präsentieren, sondern eher einen Schubs in die richtige Richtung geben Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2014, 14:42 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2014 14:43 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Array durchsuchen und ändern
Hallo,

probiere mal diesen PseudoCode umzusetzen:
Code:
index := 0
REPEAT
  byte := IndexArray(arr, index)
  if byte <> 0x0e THEN
    index++
  ELSE
    arr := DeleteFromArray(arr, index) % 0x0E-Byte löschen
    byte := IndexArray(arr, index) + Offset % nachfolgendes Byte lesen und Offset addieren
    ReplaceArraySubset( arr, index, byte) % wieder eintragen
  ENDIF
UNTIL index >= ArraySize(arr)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.10.2014, 14:42 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2014 14:43 von jg.)
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Array durchsuchen und ändern
Na dann mal ein kleiner Schubs:
   
Was in den nicht sichtbaren Teilen der Case-Strukturen abgeht, darfst du dir überlegen... ( EDIT: bzw. aus Gerds Pseudo-Code zusammenreimen).

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2014, 10:37 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2014 10:37 von Fry12.)
Beitrag #4

Fry12 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Oct 2014

10
2014
EN



RE: Array durchsuchen und ändern
Hallo ihr beiden!

Vielen Dank für eure Hilfe, ihr habt gerade so viel verraten, dass man noch selbst darüber nachdenken muss Wink

Mein Problem bestand vor allem darin, wie ich das veränderte Array in den nächsten Schleifendurchlauf übergeben kann und wie ich das fertig bearbeitete Array dann aus der For-Loop herausbekomme.

Dass man Shift Register für solche Fälle verwenden kann, war mir bewusst. Allerdings kannte ich das nur für bspw. Boolesche Werte, die ich dann in den nächsten Schleifendurchlauf shiften kann. Auch den "Trick" mit dem Auto-Indexing des Arrays, also dass man das Array im Auto-Indexing Modus an die For Loop anschließt, dann aber nur für das passende Hochzählen verwendet, kannte ich noch nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Array durchsuchen hulk 16 10.340 29.09.2020 19:47
Letzter Beitrag: hulk
  2d-array durchsuchen Jolle 5 4.801 06.11.2019 15:54
Letzter Beitrag: jg
  2D Array durchsuchen und bestimmte Werte ersetzen sara2211 4 5.662 13.01.2017 10:59
Letzter Beitrag: sara2211
  Boolean Array Farbe ändern TDO 12 10.653 14.06.2016 16:34
Letzter Beitrag: Freddy
  Array Elementweise einlesen und mittels Schwellwert ändern DaniusM 9 6.375 05.01.2016 11:32
Letzter Beitrag: ThomasS.
  String durchsuchen Problem HTL_HL 21 14.493 18.12.2015 11:33
Letzter Beitrag: HTL_HL

Gehe zu: