String umwandeln und damit rechen

jensel

Level-1
Beiträge
61
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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.

Danke schon mal im vorraus.
 
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
aha jabba

also einfach einen Db anlegen und den 2 string mit A vorbesetzen das A steht dann auch gleich an der 1 stelle oder wie?

und kann ich denn in einen Db einfach den string mit A vorbesetzten?
 
Zuletzt bearbeitet:
aha Beckx-net,

das ist richtig erkannt und wie geht das mit den pointer kannst du mir das mal etwas näher erklären bitte.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.

Hoffe dir ist damit ein wenig geholfen
 
Zuletzt bearbeitet:
hallo leute

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.

Danke euche beiden für euer bemühen.
 
Zuletzt bearbeitet:
Zurück
Oben