-> Hier kostenlos registrieren
Hallo zusammen,
mache grad ein Programm, bei dem ich Strings bearbeiten, kopieren und vergleichen muss. Dabei kann sich zum einen die Länge der Strings ändern. Zum anderen werden Teile des Strings mit z.B. Vorwahlen aus dem Bedienpanel (MP277) verglichen.
Für das Ganze benutze ich die Funktionen aus der iec-Bibliothek also FC4, FC10 usw. Dabei habe ich aber größere Probleme:
Problem 1:
In einem DB habe ich einen String mit 16 Zeichen deklariert. Nun will ich mit FC4 die aktuelle Zeichenlänge auslesen. Geht bei mir leider nicht, ich habe Längen wie 18 oder 20??
Wenn ich über Varibalen beobachten/steuern den String beschreibe passiert rein gar nichts.
Problem 2:
Die Funktion MID FC26. Diese Funktion funktioniert im Prinzip wunderbar, außer wenn sich die Zeichenlänge zwischendurch ändert. Habe ich z.B. erst ein Wort mit 8 Zeichen und dann eins mit 7 Zeichen, bleibt das 8 Zeichen drin stehen und wird nicht abgelöscht. Jetzt habe ich mir für diesen Fall einen Lösch-String gebaut, der dann den Ausgangsstring über BLKMOV ablöscht. Das funktioniert auch, ist aber für mich nicht sauber gemacht, weil ich nämlich davon abhängig bin, das im Lösch-String sicher nichts drin steht. Diesen könnte ich mit FILL zwar ständig auf NULL halten, aber da steigt mir dann das BIE-Bit von FC26 aus.
Habe auch schon versucht die Strings lokal anzulegen (mit gleicher Zeichenlänge deklariert, wie die String aus dem DB), aber diese lokalen Varibalen mag der FC26 nicht. Das BIE-Bit wird nicht durchgeschaltet und somit arbeitet der FC26 nicht.
Könnte diese Funktion im Prinzip selber programmieren, zumindest den FC26, kenne mich aber mit der Stringbearbeitung innerhalb FC's leider nicht. Die Strings als IN oder OUT Varibalen zu bearbeiten verstehe ich nicht, oedr habe ich noch nicht rausgefunden.
Kennt sich da von euch jemand damit aus? Ihr würdet mir sehr weiterhelfen. Vielleicht gibt es auch irgendwo Beispielprogramme, wo man mal sieht, wie das Ganze gehandhabt wird.
Vielen Dank an alle
TomDrom
mache grad ein Programm, bei dem ich Strings bearbeiten, kopieren und vergleichen muss. Dabei kann sich zum einen die Länge der Strings ändern. Zum anderen werden Teile des Strings mit z.B. Vorwahlen aus dem Bedienpanel (MP277) verglichen.
Für das Ganze benutze ich die Funktionen aus der iec-Bibliothek also FC4, FC10 usw. Dabei habe ich aber größere Probleme:
Problem 1:
In einem DB habe ich einen String mit 16 Zeichen deklariert. Nun will ich mit FC4 die aktuelle Zeichenlänge auslesen. Geht bei mir leider nicht, ich habe Längen wie 18 oder 20??
Wenn ich über Varibalen beobachten/steuern den String beschreibe passiert rein gar nichts.
Problem 2:
Die Funktion MID FC26. Diese Funktion funktioniert im Prinzip wunderbar, außer wenn sich die Zeichenlänge zwischendurch ändert. Habe ich z.B. erst ein Wort mit 8 Zeichen und dann eins mit 7 Zeichen, bleibt das 8 Zeichen drin stehen und wird nicht abgelöscht. Jetzt habe ich mir für diesen Fall einen Lösch-String gebaut, der dann den Ausgangsstring über BLKMOV ablöscht. Das funktioniert auch, ist aber für mich nicht sauber gemacht, weil ich nämlich davon abhängig bin, das im Lösch-String sicher nichts drin steht. Diesen könnte ich mit FILL zwar ständig auf NULL halten, aber da steigt mir dann das BIE-Bit von FC26 aus.
Habe auch schon versucht die Strings lokal anzulegen (mit gleicher Zeichenlänge deklariert, wie die String aus dem DB), aber diese lokalen Varibalen mag der FC26 nicht. Das BIE-Bit wird nicht durchgeschaltet und somit arbeitet der FC26 nicht.
Könnte diese Funktion im Prinzip selber programmieren, zumindest den FC26, kenne mich aber mit der Stringbearbeitung innerhalb FC's leider nicht. Die Strings als IN oder OUT Varibalen zu bearbeiten verstehe ich nicht, oedr habe ich noch nicht rausgefunden.
Kennt sich da von euch jemand damit aus? Ihr würdet mir sehr weiterhelfen. Vielleicht gibt es auch irgendwo Beispielprogramme, wo man mal sieht, wie das Ganze gehandhabt wird.
Vielen Dank an alle
TomDrom