Inhalt
Index
Support Über uns
Home

2.4.18 INSPECT




 
Format1
INSPECT Feldname1 TALLYING Feldname2 FOR { [ { CHARACTERS [{BEFORE / AFTER} [INITIAL] Feldname3] ... / {ALL / LEADING} Feldname4 [{BEFORE / AFTER} [INITIAL] Feldname5 ...] ... } ]

/ [ REPLACING { CHARACTERS BY Feldname6 [{BEFORE / AFTER} [INITIAL] Feldname7 ... / {ALL / LEADING / FIRST} Feldname8 [{BEFORE / AFTER} [INITIAL] Feldname9 ...] ... } ] }



Mit INSPECT werden die Anzahl von Zeichen in einem Datenfeld gezählt (TALLYING) oder ersetzt (REPLACE).

Hierbei können mehrere Kriterien gleichzeitig angegeben werden.

Achtung: Das Ergebnis (TALLYING Feldname1) wird bei diesem Befehl nicht initialisiert sondern aufaddiert!

Der Zählbereich kann durch Angabe von BEFORE und AFTER entsprechend eingeschränkt werden.

Beispiel: Aufsplitten eines Pfadnamens

       identification division.
       data division.
       working-storage section.
       01 anz          pic 999.
       01 lanz         pic 999.
       01 len          pic 999.
       01 pfadname     pic x(200).
       procedure division.
        move 'c:\programme\acc\cobol\test\insp1.cob' to pfadname.       
        move 1 to lanz anz 
        move function length(pfadname) to len.
       ilop.
        inspect pfadname (anz:) tallying anz for characters before '\'
        if anz < len add 1 to anz
                     move anz to lanz
                     go to ilop.
        display pfadname(lanz:)       
        call getchar.

Anzeige: insp1.cob


       Beispiel:


         01 tfeld      pic x(20) value ' los: xxy ende: xx' 
         ....


         move 0 to anz.
         inspect tfeld tallying anz for all 'x'
               after 'los' before 'ende'.


         display anz.



        Anzeige: 2        




Mit REPLACING könne in dem angegebenen Bereich die Zeichen verändert werden.

Eine spezielle Form des REPLACING bietet folgendes Format:


 
Format2
INSPECT Feldname1 CONVERTING Feldname2 TO Feldname3 [{BEFORE / AFTER} [INITIAL] Feldname5 ...]



CONVERTING wird so abgearbeitet als würde mit jedem einzelnen Zeichen von Feldname2 ein REPLACING ALL mit dem zugehörigen Zeichen von Feldname3 durchgeführt werden.

       Beispiel:


         01 tfeld      pic x(20) value '123abc123142' 
         ....


         move 0 to anz.
         inspect tfeld converting '123' to 'ABC' after 'a'.
         display tfeld


       Anzeige: 123abcABCA4B





Siehe inspect.cob

Zurück zu Acc-Cobol Initialize Statement    Hoch zu Procedure Divison in COBOL    Weiter zu MONITOR
Entwickler Portal Impressum AGB Kontakt


© 1980-2017 Acc Computertechnik GmbH All rights reserved.