Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

COBOL Grundkurs

String-Verkettung in COBOL

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Für moderne Programmiersprachen ist die String-Verkettung, obschon ungemein wichtig, ein trivialer Vorgang. In COBOL ist String-Verkettung dagegen ziemlich aufwändig. Wie sie dennoch gelingt, sehen Sie in diesem Video.

Transkript

In modernen Programmiersprachen ist die sogenannte String-Verkettung ein ganz einfacher Prozess. In der Regel wird mit einem Plus-Zeichen ein String an einen anderen gehängt und gut ist. In COBOL ist das hingegen relativ kompliziert. Gerade für Umsteiger aus modernen Sprachen sicherlich sehr ungewohnt kompliziert, weil man muss einige Dinge beachten und einen doch ungewohnt hohen Aufwand betreiben, um etwas so einfaches zu tun -- scheinbar einfaches --, wie zwei Strings zu verketten. Es gibt zum einen das Problem, dass die Grenzen von Strings im Grunde nicht respektiert werden, zumindest nicht in der Form, wie man es in modernen Sprachen gewohnt ist. Ich habe hier ein Beispiel, das so eine String-Verkettung vornimmt, und wir verketten drei Strings miteinander, und zwar diese drei hier, die in Zeile 9, 10 und 11 deklariert sind. In Zeile 8 gibt es den Zielstring, der diese verketteten Zeichen dann aufnehmen wird. Sollte dieser zu klein sein, werden Sie einen sogenannten Overflow erhalten. Das heißt COBOL kümmert sich nicht darum, dass der Zielstring zu klein ist und schreibt überzählige Zeichen einfach hinten dran. Aber diese werden durch dieses Feld nicht mehr adressiert, sondern können durchaus Dinge überschreiben, die man für andere Sachen braucht. Wir haben also nicht diese Sicherheit und Stabilität, die man möglicherweise gewohnt ist im Umgang mit Strings. Grundsätzlich erfolgt die String-Verkettung über das Verb "STRING" und dann gibt man die aneinander zu hängenden Strings nacheinander an und sagt, was der Zielstring ist. Beachten Sie, dass Sie die Begrenzung der zu verkettenden Strings, hier sowohl durch die Größe des Original-Strings angeben können, "DELIMITED BY SIZE", aber auch zum Beispiel über "DELIMITED BY SPACE". Das hier machen wir in dem Feld "WS-STR3", wo wir hier ein Leerzeichen haben und Sie werden sehen, dass nur ein Teil dieses Wertes in die Verkettung mit aufgenommen wird. Das hier ist dann der Zielstring und die beiden optionalen Angaben "WITH POINTER" und "ON OVERFLOW" beinhalten im ersten Fall Informationen über den Zeiger in der Zeichenkette und im zweiten Fall wird hier eine Reaktion ausgelöst, die anzeigt, dass ein Overflow passiert ist. Das heißt also, dass die Zeichenketten, die aneinander gefügt worden, nicht in den Zielstring hineinpassen. Wir lassen das Beispiel mal laufen. Sie sehen hier die Ausgabe von dem resultierenden String und man sieht deutlich, dass das Wort "in" hier fehlt. Hier haben wir das Begrenzen durch ein Leerzeichen und das heißt, nur die ersten drei Buchstaben von diesem Feld werden verkettet. Beachten Sie auch, dass ich als erstes Feld hier "WS-STR2" auswähle. Die Reihenfolge stimmt nicht mit der Deklarationsreihenfolge überein und auch nicht mit der Nummerierung. Das ist jetzt aus didaktischen Gründen so gewählt, denn es ist natürlich vollkommen willkürlich, wie hier diese Felder heißen. Die 47 hier ist die POINTER-Angabe, das heißt, wenn man zählt, wie viel Zeichen hier im Zielstring angekommen sind, dann werden Sie auf die Zahl 47 kommen und an der Stelle steht nun der Zeiger. Ich möchte jetzt ein Overflow auslösen. Das heißt, ich reduziere die Zahl der Zeichen, die in dem Zielstring auftauchen können, die er aufnehmen kann, auf 45. Offensichtlich ist das jetzt zu klein. Kompilieren wir das Beispiel wieder und lassen es erneut laufen. Zur Kompilierzeit wird nicht erkannt, dass der Zielstring zu klein ist. Das kann auch zur Kompilierzeit nicht bekannt sein, weil man möglicherweise dynamisch entgegengenommene Werte in dem Feld hier zusammenfügt. Und Sie sehen, dass hier ein Overflow ausgelöst wird und hier auch das Zeichen "t" nicht mehr in dem Zielstring auftaucht. Pointer steht wieder hinter diesem Zielstring. Sie haben also in diesem Video erfahren, wie man String-Verkettung in COBOL vornimmt. Ein Verfahren, was man als Programmierer aus modernen Sprachen überhaupt nicht mehr so ungewohnt kompliziert kennt, aber in COBOL so durchgeführt wird.

COBOL Grundkurs

Lernen Sie die Programmiersprache COBOL mit ihren Grundfunktionen kennen und schreiben Sie eigene Programme.

3 Std. 4 min (45 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:21.11.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!