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

COBOL Grundkurs

Suchen in Tabellen in COBOL

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Mit dem Verb SEARCH können Sie in COBOL Arrays bzw. deren Elemente gezielt durchsuchen. Das wird in der Regel mit dem Setzen des Index über SET kombiniert.

Transkript

COBOL stellt ein lineares Suchverfahren zur Verfügung, um in Tabellen nach Inhalten zu suchen. Dieses Verfahren wollen wir uns in dem Video ansehen. Man nutzt das Verb "SET" in Verbindung mit dem Verb "SEARCH", womit die konkrete Suche durchgeführt wird. Schauen wir uns dieses Beispiel mal an. Ich habe hier eine Tabelle, die aus fünf alphanumerischen Feldern der Länge 10 besteht, und diese werden mit dem Wort "Vorgabe" initialisiert, und der Suchindex ist als "I" festgelegt. Ich lege ein Feld mit 5 Zeichen, alphanumerischen Zeichen, fest, mit einem Wert "nicht", das wird mein Suchstring sein, nach dem ich in der Tabelle suchen möchte. Zuerst gebe ich die Tabelle aus und dann schreibe ich einen Text direkt in diese Tabelle. Das passt so nicht richtig rein. Offensichtlich taucht das Wort "nicht" hier auf, dann suche ich nach diesem Wort. Und zwar geht das folgendermaßen, der Suchindex wird auf 1 festgelegt, das heißt, ich suche im ersten Element der Tabelle. Mit "SEARCH WS-A", das sind die Felder in der Tabelle, werde ich, wenn das gesuchte Element gefunden wird, sagen: "Gefunden" und ansonsten "AT END", also wenn die gesamte Suche durchgelaufen ist: "Nicht gefunden". Über "SET" und "SEARCH" wird hiermit tatsächlich ein Automatismus festgelegt, der über die gesamte Tabelle automatisch sucht. Ich muss mit "END-SEARCH" die Aktion beenden. Was meinen Sie, was wird das Ergebnis sein, wenn ich jetzt die Suche laufen lasse? Wird "Nicht gefunden" oder "nicht"? Wir schauen uns das mal an. "Nicht gefunden", das ist hier diese "AT END DISPLAY 'Nicht gefunden'". Was ist schief gelaufen? Sie sehen hier die Tabelle mit dem Text und da steht: "Das passt so nicht richtig rein". Warum findet er nicht den Suchbegriff "nicht"? Ganz einfach, dieses "nicht" steht nicht in den Feldern richtig drin. Ein Teil steht in dem einen Feld, ein Teil in dem anderen. An der Stelle, Zeile 22, füge ich das Wort "nicht" direkt in das Feld "WS-A(4)" ein. Und dann sehen Sie hier, dass tatsächlich das "nicht" hier steht. Dieses "rei" zählt noch zu "WS-A(3)" und das "nicht" ist der Inhalt von "WS-A(4)". Und dann findet die Suche auch den Suchbegriff. Nochmal zur Verdeutlichung: Diese Suche arbeitet mit einigen Automatismen, insbesondere, dass der Suchindex pro Suchdurchlauf immer um 1 erhöht wird. Deswegen das Setzen auf 1 bedeutet, wir beginnen am Anfang der Tabelle und die Suche läuft immer durch Erhöhen des Suchindexes um den Wert 1 bis zum Ende der Tabelle. Der Vollständigkeit halber sei noch erwähnt, dass es mit dem Schlüsselwort "ALL" auch ein binäres Suchverfahren gibt, das verwendet wird, um alle Elemente in einer Tabelle zu finden, allerdings muss die Tabelle dann in sortierter Reihenfolge vorliegen. Die Suche, wie Sie sie hier in diesem Beispiel gesehen haben, geht für sortierte Tabellen, aber auch für unsortierte Tabellen.

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!