Textsteuerung in ST

Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt ist mir bei den Texten Text1 bis Text3 etwas aufgefallen:
Bitte immer nur 1 Leerzeichen zwischen den einzelnen Begriffen und (noch wichtiger) auch genau 1 Leerzeichen vor dem ersten Begriff und 1 Leerzeichen hinter dem letzten Begriff!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ich hätte noch ein Frage bezüglich meiner Hausaufgaben von 2.2 und 2.3 ich habe irgendwie keine Ahnung was sie bei 2.3 meinen und 2.2 bei 2.2 hätte ich schon den ganzen Lehrbrief durchgesehen und wir haben das noch nicht durchgemacht deshalb habe ich leider absolut keine Ahnung. Vielleich kann mir ja jemand weiterhelfen.
Danke im voraus.
LG
 

Anhänge

  • Screenshot (241).png
    Screenshot (241).png
    142,5 KB · Aufrufe: 68
du sollst aus dem String die linke 4 finden, isolieren und in eine Zahl konvertieren.
Eigentlich in einem String die erste Ziffer (x >= '0' AND x <= '9') finden und diese dann in einen nicht näher spezifizierten GanzzahlDatenTyp konvertieren.

... und 2.2 bei 2.2 hätte ich schon den ganzen Lehrbrief durchgesehen und wir haben das noch nicht durchgemacht deshalb habe ich leider absolut keine Ahnung.
Ebenfalls keine Ahnung. Ist damit die Potenzierung von 4.2 mit 5.3 gemeint? In AWL? Für nur lächerliche 4 Punkte? Das kann doch irgendwie nicht sein ... oder gibt es in CodeSys-AWL dafür tatsächlich eine verwendbare Funktionalität? Z.B. das Rechnen mit Logarithmen?
 
Ja aber ist "expt" nicht ein iec operator?
"expt" ist zwar in Codesys V3 integriert aber in der Liste der IEC "A.2 Numerische Funktionen" steht es nicht mit dabei.
Ich denke hier soll eine allg. mögliche Berechnung erläutert werden.
Stichwort
- Wurzelgesetze
- LN (natürlicher Alogarithmus)
- EXP (Exponent Basis e)

PS. 4 Punkte ist dafür aber ganz schön wenig:unsure:
 
Eine Möglichkeit wäre von einem bekannten Zeichen aus zu zählen.
Du suchst mit „Find“ ein Zeichen welches immer an der gleichen Position ist. z.B. „leer“ oder „-„. Von dieser festen Position kannst du dann zählen.

Ein anderer Ansatz ist jedes Zeichen vom Anfang an auf eine Zahl zu prüfen. Die erste gefundene Zahl wäre das Ergebnis.
 
Habe jetzt eine weile an der aufgabe 2.3 getüfftelt aber ich komme irgendwie nicht drauf 😕
Mit MID kannst Du jedes einzelne Zeichen (oder auch mehrere) aus einem String isolieren.
In einer Schleife. ErstesZeichen prüfen, ob es eine Ziffer ist.
Wenn nein, dann mit dem nächsten Zeichen wiederholen u.s.w. bis sich ein Zeichen als Ziffer zu erkennen gibt oder der String zu Ende ist und keine Ziffer dabei war.
Wenn ja, die Suche augenblicklich abbrechen, denn man hat das Gesuchte gefunden.
Woran erkennt man eine Ziffer?
Ziffern sind die ASCII-Zeichen 48 bis 57 (dezimal) bzw. 30h bis 39h (hexadezimal) bzw. '0' bis '9', wobei mit dieser Schreibweise gemeint ist, dass die Ziffern direkt als ASCII-Zeichen zu verstehen sind.
Wenn also die Beurteilung eines Zeichens ergeben soll, ob es sich um eine Ziffer handelt oder nicht, dann prüft man ob das Zeichen >='0' UND Zeichen <='9' ist. (Alternativ über den ZahlenWert des Zeichens: Zeichen >=48 UND Zeichen <=57)

Man kann auch mit der FIND-Funktion arbeiten und nacheinander nach allen 10 denkbaren Ziffern im String suchen lassen.
Der FIND liefert jeweils die Position der ersten gefundenen Ziffer im String (nach der gerade gesucht wird).
Die kleinste Position, die aber grösser als 0 sein muss (denn 0 bedeutet: das Zeichen wurde im String nicht gefunden!) die von den 10 FIND-Funktionen gefunden wurde, ist dann die Position der ersten Ziffer im String.

Letzteres Verfahren (mit FIND) artet aber eher in ein "mit Spatzen auf Kanonen schiessen" aus, ist also eher zu aufwändig und vor allem zeitaufwändig, da alle 10 Ziffern geprüft werden müssen. Es kann bei laaangen Strings, in denen die erste Ziffer erst kurz vor StringEnde auftritt, zeitlich von Vorteil sein.
Ersteres Verfahren (mit MID) würde ich bei kurzen Strings, die nach Ziffern durchsucht werden müssen, vorziehen.
 
Du sollst eine Funktion mit Namen "Auflage" schreiben. Übergabeparameter ist "TeilenNr" als string. Rückgabewert soll vom Datentyp eine Ganzahl sein, zum Beispiel ein int.
 
Zurück
Oben