Hallo Leute ich hab ein kleines problem und weiß nicht wie ich das lösen kann vielleicht könnt Ihr mir ja helfen.
Ich habe einen DINT den muß ich in einen String [32] wandel das sieht ja dann so aus wenn ich richtig bin 0000012345 dies ist ja nicht das problem das geht ja mit den fc5 aus der iec libery so heißt der glaube ich.
Und jetzt kommts wenn ich den DINT dann als String [32] habe muß ich diesen dann wie folgt dargestellt bekommen A000012345. meine frage ist jetz wie bekomme ich das A oder einen anderen Buchstaben da vorne hin.
FC2 Concat verbindet zwei Strings
du legst einen an mit der Vorbelegung 'A' und setzt den vor den String
Die Funktion FC 2 fasst zwei STRING*Variablen zu einer Zeichenkette zusammen. Ist die Ergebniszeichenkette länger als die am Ausgangsparameter angelegte Variable, wird die Ergebniszeichenkette auf die maximal eingerichtete Länge begrenzt und das BIE*Bit auf "0" gesetzt.
Sieht mir so aus, als ob die erste '0' durch ein 'A' ersetzt werden soll. Wenn ja, kannst einfach mit nem Pointer auf das erste BuchstabenByte Zeigen und aus der '0' ne 'A' machen.
wenn dein String z.B. in einen DB steht, kannst du es so machen
Code:
AUF DB1 // Dein DB
L 'A'
T DBB 2 // Wenn dein String bei der Byteadresse 0 anfängt
Oder alternativ mit einem Pointer
Code:
AUF DB1 // Dein DB
LAR1 P#DBX0.0 // Anfangsadresse deines Strings
L 'A'
T B[AR1,P#2.0] // Transfer mit Byteoffset
Wichtig ist nur zu wissen, dass in den ersten beiden Bytes einer Stringvariable die Max. Länge und die tatsächliche Länge gespeichert ist (Steht in der Hilfe gut beschrieben). Solange sich an der Stringlänge nix ändert, musst du hier auch nix anpassen.
Beckx-net dein Vorschalg ging nicht es ist nicht das rausgekommen was ich wollte.
nachdem ich den Dint ( 25688 ) in einen String gewandelt hatte stand da drin +25688 und mit deinen Vorschlag konnte ich ja nur das vorzeichen in den Buchstaben wandeln. Aber danke für den Ansatz.
hab das jetz so gemacht wie jabba es gesagt hat habe 2 Strings angelgt und den ersten string auf 4 zeichen begrenzt und mit deinen awl beckx-net noch das A noch davor geschrieben und bin dann auf das richtig ergebniss gekommen wie ich es wollt und zwar A000025688.