INT Wert immer 3 Stellig initialisieren

Gizzl0r

Level-1
Beiträge
142
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,
ich habe vor Daten aus einem String zu lesen. Der String wird wie folgt beschrieben D001=0000;D002=1111;D003=12345;D004=919191 usw.
Um die Stelle herauszufinden, wo sich das D0XX befindet, habe ich folgenden Code

Code:
FOR i:=01 TO 29 DO
    GVL.zaehl_string := CONCAT ('D', INT_TO_STRING(i));
    GVL.DataL[i] := FIND (GVL.qr_code_string,GVL.zaehl_string);
END_FOR

Das Problem ist das mein Zähler i einstellig ist. Gibt es eine Möglichkeit einen INT wert als 3 Stellig zu definieren? Also i=001?
 
Ic würde es ungefähr so machen :
Code:
GVL.zaehl_string := CONCAT ('D', right(INT_TO_STRING(1000+i) ,3));
Da ich nun gerade kein SCL zur Verfügung habe weiß ich nur nun nur nicht ob der Befehl RIGHT so korrekt eingesetzt ist und ob es exakt so heißt ... sorry
 
Jetzt muss ich mir übers Wochenende Gedanken machen, wie ich einen >1000 Zeichen String einlesen und darstellen kann.
Du könntest ihn mit der Funktion SPLIT zerlegen - dein Split-Zeichen wäre das Semikolon ...
In dem so entstehenden Array bräuchtest du dann nur noch nach dem Gleichheitszeichen suchen (ggf. auch wieder mit SPLIT) um den Wert zu finden ...
 
@Rob1337
soweit ich das verstanden habe, beinhaltet die concatw das zusammenfügen mehrer Strings. Mein Ziel ist es einen String >255 Zeichen zu teilen oder wenn irgendwie möglich, komplett einzulesen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein Ziel ist es einen String >255 Zeichen zu teilen oder wenn irgendwie möglich, komplett einzulesen.
Da muss ich doch jetzt mal fragen : wie liest du den String den aktuell ein bzw. hast du vor es zu tun ?
Besteht nicht die Möglichkeit, ihn in mehreren, sinnvoll teilbaren Segmenten einzulesen ?
 
Zur Zeit lese ich den String testweise über ein Eingabefeld ein.
In Zukunft wird der String aus einer SQL DB gelesen.
Ablauf:
1. Ich scanne einen 2D Code ein. <- Funktioniert
2. Ist der 2D Code noch nie eingescannt gewesen, lese ich aus der SQL DB den String > 1000 Zeichen. <- Funktioniert noch nicht
3. String in seine Bestandteile trennen. <- Funktioniert
4. Die Daten aus dem String verarbeiten. <- Funktioniert
 
2. Ist der 2D Code noch nie eingescannt gewesen, lese ich aus der SQL DB den String > 1000 Zeichen. <- Funktioniert noch nicht
dann nochmal eine Frage : warum liest du aus der DB denn diesen Riesenstring ein, der ja jede Menge (für dich) unnütze Info mitbringt sondern begrenzt ihn bei der Abfrage nicht gleich ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In dem String befinden sich Produktinformationen, welche später auf ein Etikett sollen. Produktspezifische X- Y- Koordinaten zur Testung des Produktes, wie auch Toleranzen, Soll Maße etc.
 
Was für eine Datenbank verwendest Du? Kannst Du dort benutzerdefinierte Funktionen hinterlegen?
Dann könntest Du mit SQL den String zerlegen und Dir ein Array von Ergebniszeilen zurückgeben lassen. Also was Larry vorgeschlagen hat, nur nicht auf der SPS, sondern bereits in der Datenbank.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das über die Datenbank zu lösen wäre auch möglich. Ich habe es jetzt über die SPS geschafft.
Über den Parameter.cMaxCharacters in der Tc2_Utilities Bibliothek kann die maximale Stringlänge angepasst werden. Dann können die Extended Stringfunktionen auch mehr als 255 Zeichen verarbeiten.
 
Zurück
Oben