Step 7 Char aus Array in String kopieren

jierten

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versuche grade Charakter aus einem Array in einen String zu packen.. Das Problem? Es klappt nicht :ROFLMAO:

Also mein DB mit dem Array enthält Charakter die von einem Barcode-scanner kommen. (Anzahl Charakter ist variabel!)
Zur Weiterverarbeitung in der Visualisierung bräuchte ich die Charakter aneinandergereiht in einem String.

DB50 enthält den String beginnend bei Adresse 0 und mit vordefinierter Länge 30
DB72 enthält das Array

Ich stelle mal meinen Code hier rein , wohl wissend dass er nicht funktioniert.
Hoffe ihr könnt mir weiter helfen..


Netzwerk1
Code:
      L     DB72.DBD  288
      T     #Länge                          //Anzahl Char im Array

Netzwerk2
Code:
      L     #Länge
      T     DB50.DBB    0
      T     DB50.DBB    1

Netzwerk3
Code:
      L     P#290.0
      T     "PointerArray"
      L     P#0.0
      T     "PointerString"

Netzwerk4
Code:
      L     #Länge
A:    T     #count

      AUF   "SICK LECTOR CLV DATA"          //DB72
      L     DBB ["PointerArray"]
      T     #char_temp


      AUF   "Daten für visu"                      //DB50
      L     #char_temp
      T     DBB ["PointerString"]

      L     "PointerArray"
      L     P#1.0
      +D    
      T     "PointerArray"
      L     "PointerString"
      L     P#1.0
      +D    
      T     "PointerString"

      L     #count
      LOOP  A
      NOP   0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Byte 0 und 1 im String enthalten die Länge, die Char fangen bei Byte 2 an.
Dazu möchte ich ergänzen:
Byte 0 enthält die maximale Länge (bei Dir 30),
Byte 1 enthält die tatsächliche Länge.
Code:
      L     #Länge
      T     DB50.DBB    0
      T     DB50.DBB    1
Ich würde an Deiner Stelle Byte 0 nicht verändern.
 
Ok danke, flüchtigkeitsfehler.. :oops:

Jedoch verstehe ich nicht, wenn ich den FC mit obrigem Code in den OB1 einbinde, schaltet mein Automat auf stop...

Beim Diagnosepuffer stehen dann mehrere Linien jeweils mit :
-Bereichslängenfehler beim Schreiben
-Bereichslängenfehler beim Lesen

Woran kann das liegen?
 
Steht in DB72.DBD288 die korrekte Länge?
Wie wird diese ermittelt? Ist in der Länge möglicherweise ein Abschlußzeichen enthalten, so daß der String länger wird?
Gibt Dir der Diagnosepuffer an, wo der Bereichslängenfehler liegt?
Setz doch die Länge mal fest auf einen Wert, z.B. 10 und guck Dir das Ergebnis an...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, zum einen hatte ich schon einen dummen Fehler vorweg.. die länge steht nicht in DBD288 sondern in DBW288

Zweiter punkt, wenn nichts gescannt wurde, ist die länge natürlich 0. Und da hakte es auch irgendwie. Habe nun vor dem LOOP eine Sprungmarke gesetzt die im Falle, dass die Länge null ist, ans Ende des Codes springt und jetzt läuft's.
 
Zurück
Oben