COBOL

2009-06-02 9 views
8

में STDIN (SYSIN) पढ़ें, मैं COBOL में STDIN (उर्फ SYSIN) से लाइनों को पढ़ना चाहता हूं। अभी के लिए मैं बस उन्हें प्रिंट करना चाहता हूं ताकि मुझे पता चले कि मुझे मिल गया है। सब कुछ से मैं पढ़ रहा हूँ ऐसा लगता है कि यह काम करना चाहिए:COBOL

IDENTIFICATION DIVISION. 
PROGRAM-ID. APP. 

ENVIRONMENT DIVISION. 
INPUT-OUTPUT SECTION. 
FILE-CONTROL. 

    SELECT SYSIN ASSIGN TO DA-S-SYSIN ORGANIZATION LINE SEQUENTIAL. 

DATA DIVISION. 
FILE SECTION. 

FD SYSIN. 
01 ln PIC X(255). 
    88 EOF VALUE HIGH-VALUES. 
WORKING-STORAGE SECTION. 

PROCEDURE DIVISION. 
    OPEN INPUT SYSIN 
    READ SYSIN 
     AT END SET EOF TO TRUE 
    END-READ 
    PERFORM UNTIL EOF 
     DISPLAY ln 
     READ SYSIN 
      AT END SET EOF TO TRUE 
     END-READ 
    END-PERFORM 
    CLOSE SYSIN 
    STOP RUN. 

compiles (खुले cobol और cobc -x का उपयोग कर), लेकिन यह चल रहा है मैं उस:

libcob: File does not exist (STATUS = 35) File : '' 

मैं क्या कर रहा हूँ गलत?

उत्तर

4

निम्नलिखित मुझे OpenCOBOL forums पर सुझाया गया था।

SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL. 

यह कीवर्ड कुंजीपटल है जो इसे काम करता है।

जाहिर है DISPLAY STDOUT के लिए एक समान शब्द है, लेकिन मैंने इसका परीक्षण नहीं किया है।

4

मेरा COBOL डीपीएस -6 मिनीकंप्यूटर रननॉन्ग जीसीओएस -6 पर वापस आता है और मैंने 1 99 2 में इसे छुआ। लेकिन फिर वापस हमने stdin से इनपुट प्राप्त करने के लिए ACCEPT का उपयोग किया।

+0

मैं इसके बजाय ACCEPT का उपयोग करने के साथ ठीक हूं (हालांकि मैंने इसे बड़े डेटा के लिए खराब अभ्यास माना है), लेकिन फिर मैं ईओएफ का पता लगाने के लिए लूप कैसे बना सकता हूं? – singpolyma

0

आप कीबोर्ड आउटपुट को पकड़ने के लिए केवल ACCEPT कीवर्ड का उपयोग कर सकते हैं। तब तक लूप करें जब तक कि आप 'एंड' जैसे कीवर्ड को हिट न करें, या आप ईओएफ (1 ए, मुझे विश्वास है) के हेक्स वैल्यू का उपयोग कर सकते हैं।

में के रूप में:

1000-YOUR-PARAGRAPH. 
    ACCEPT WS-YOUR-VARIABLE. 
    DISPLAY WS-YOUR-VARIABLE. 
    IF WS-YOUR-VARIABLE IS NOT EQUAL TO EOF 
    THEN GO TO 1000-YOUR-PARAGRAPH 
    ELSE GO TO 1090-EXIT 
    END-IF. 
1090-EXIT. 
    EXIT. 

कि सब कुछ एक EOL मार्कर अप करने के लिए करते हैं (उदा वापसी)।

संबंधित मुद्दे