Zum Inhalt springen

COBOL: Text/Zahlen variablen Länge mit ACCEPT


Empfohlene Beiträge

Hallo alle,

nachdem ich schon im COBOL-Forum gefragt hatte und dort leider keine Antwort kam, da das Forum wohl kaum besucht wird, versuche ich hier nochmal mein Gück:

ich bin seit heute dabei mich in Cobol einzuarbeiten.

Ich habe schon ein paar einfache Bespiele (Hello-World usw.) nachvollzogen.

Nun sitze ich an einem Programm, das den Namen des Nutzers per Eingabeaufforderung einliest und ihm dann einen Begrüßungssatz auf dem Bildschirm ausgibt.

Das Problem ist jedoch, dass der eingegeben String (wenn man es bei Cobol so nennen kann) immer eine feste Länge haben muss. Genauer gesagt: wenn ich bei der Deklaration der Variablen eine Länge von z.B. 10 Zeichen angebe, muss ich in der Eingabeaufforderung auch genau 10 Zeichen eingeben, damit sie beendet wird und der Satz mit der Begrüßung erscheint.

Gebe ich weniger Zeichen ein, wechselt ein Enter nur in eine neue Zeile und die Eingabeaufforderung wartet weiter auf meine Eingaben, bis ich 10 Zeichen eingegeben habe.

Ich kann aber manuell mit Strg+Z ein Zeilenende-Zeichen machen und dann wird ACCEPT auch beendet.

In den Beispielen die ich gefunden habe, wurde es mit der ACCEPT-Anweisung aber genauso gemacht.

Ich arbeite mit NetCOBOL for .NET 3.1 und dem Microsoft Visual Studio 2005 unter Windows XP.

Weiß hier jemand, woran es liegen könnte?

Hier mein Sourcecode:


000001 IDENTIFICATION DIVISION.

000003 PROGRAM-ID. MAIN AS "salutationname.Main".

000004 

000005 ENVIRONMENT DIVISION.

000006 

000007 CONFIGURATION SECTION.

000008 SPECIAL-NAMES.

000009 REPOSITORY.

000010 

000011 DATA DIVISION.

000012 WORKING-STORAGE SECTION.

000013* Variables000020 01 WAITER  PICTURE IS X.

000021 01 THE-NAME    PIC X(10).

000022 

000023 PROCEDURE DIVISION.

000024 PROGRAMM-BEGIN.

000026     DISPLAY "Enter your name:".

000027     ACCEPT THE-NAME.000028         

000029     DISPLAY "Hallo " THE-NAME.

000030     000031     ACCEPT WAITER.

000032 PROGRAM-END.

000033 

000034 END PROGRAM MAIN.

Sicherlich fällt bei dem Programm sofort die unterschiedliche Deklaration der Variablen auf:

"PICTURE IS X" scheint die alte Form zu sein.

in neueren Beispielen habe ich PIC X(x) gesehen.

Vielen Dank im voraus

Christian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst dem accept noch irgendwie mitgeben das es bei Enter die Eingabe beendet wenn ich mich richtig erinnere. Frag mich aber nicht wie das genau war, bin froh das alles erfolgreich verdrängt zu haben ;)

PS: Wenn man nach "Cobol accept" googelt erscheint der Thread hier schon auf der ersten Ergebnisseite :D

Bearbeitet von Guybrush Threepwood
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe eben nochmal eine COBOL Unterlagen entstaubt. Da steht aber auch nur drin dass das Programm solange angehalten wird bis die gewünschten Daten eingeben wurden und Return gedrückt wurde.

Als Optional wir in meine Dokumentation noch die From Klausel angeben.

ACCEPT Bezeichner FROM CONSOLE

Ansonsten schau dir mal deine Konsole wo die Ausgabe drin erscheint an ob hier mit dem Return wirklich ein Zeilenende Zeichen gesetzt wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Ihr,

danke für die Antworten.

Ich das Ganze nochmal unter Linux mit dem Compiler OpenCobol getestet.

Da ist es kein Problem mit dem Return und funktioniert so wie es auch soll.

Der Hinweis von Schiller256 mit dem


ACCEPT Bezeichner FROM CONSOLE

hat funktioniert.

Vielen Dank an Schiller und Guybush für eure Mühe.

Viele Grüße Christian.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...