Verschachtelte if-Anweisungen in cobol

Ich versuche verschachtelte if-Anweisungen in Cobol. Soweit ich sagen kann, ich bin nach dem Stil-Führer, aber immer wieder erhalten die Fehlermeldung:

file_name.cob:64: Fehler: syntax error, unexpected ANDERES
<- Dies ist der zweite ELSE-Anweisung

Den Zweck des code ist die Funktion als Caesar-Chiffre, aber es scheint nur die geschachtelte wenn-Anweisungen, die den Fehler produziert. Ich habe versucht, den verschachtelten Anweisungen nach der ELSE-Klausel der ersten IF-Anweisung, aber das war nicht erfolgreich, da gut.

edit: ich bin mit open-cobol und und zusammenstellen, mit der '-frei' - option

    IF CharCount < 26 
                    ADD firstnum, CharCount GIVING stringShift.
                    DISPLAY stringShift.

                    IF FUNCTION MOD(stringShift, 26) IS NOT ZERO 

                            MOVE FUNCTION MOD(stringShift, 26) to stringShift
                            DISPLAY stringShift

                            MOVE abc(stringShift:stringShift) TO newChar
                            DISPLAY newChar

                            STRING newString DELIMITED BY "", newChar DELIMITED BY SIZE INTO newString

                            DISPLAY newString
                    ELSE
                            STRING newString DELIMITED BY "", searchChar DELIMITED BY SIZE INTO newString
                            DISPLAY newString
                    END-IF
            ELSE
                    STRING newString DELIMITED BY "", searchChar DELIMITED BY SIZE INTO newString
                    DISPLAY newString
            END-IF.

Dank!

  • Wollte nur zu teilen, hier die Antwort, wie es war, antwortete in der comp.lang.cobol-google-Gruppe. Es war zwei Perioden nach dem ersten HINZUFÜGEN und ANZEIGEN von Zeilen, die die Probleme verursacht. Es nun erfolgreich kompiliert.
  • Ich würde advicate putting one '.' in einer Zeile allein, am Ende jeder Prozedur (erforderlich). Dann suchen Sie Ihr Programm für streunende '.'. Einige werden das lassen Sie fin den stray '.' in der procedure division. Im mainframe ISPF-editor mit dem Befehl string alle X; F '.' all; X ' . ' alle zeigen die Punkte in der falschen position in der procedure division.
InformationsquelleAutor argonXM | 2013-04-25
Schreibe einen Kommentar