COBOL gleichzeitig sortieren und zusammenführen

  • Ich habe eine sehr schwierige Zeit mit einer mir zugewiesenen Aufgabe. Ich soll zwei TXT-Dateien sortieren und zusammenführen, die mit Bestandsdaten gefüllt sind. Ich fordere den Benutzer dann auf, ein Jahr einzugeben, und der Stammsatz druckt die Datensätze, die innerhalb dieses Jahres liegen. Kann mir bitte jemand helfen? Das habe ich momentan.

        ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
    
           SELECT STOCK-REPORT-A ASSIGN TO 'PR3AF11.TXT'.
    
           SELECT STOCK-REPORT-B ASSIGN TO 'PR3BF11.TXT'.
    
           SELECT MERGE-FILE ASSIGN TO 'WORK.TMP'.
    
           SELECT MASTER-STOCK-REPORT ASSIGN TO 'MASTERSTOCKREPORT.TXT'.
    
       DATA DIVISION.
       FILE SECTION.
    
       FD  STOCK-REPORT-A.
       01  REPORTA-REC.
           05  A-InvestorID             PIC X(2).
           05  A-InvestorName           PIC X(5).
           05  A-InvestorRating         PIC X.
    
       FD  STOCK-REPORT-B.
       01  REPORTB-REC.
           05  B-InvestorID             PIC X(2).
           05  B-InvestorName           PIC X(5).
           05  B-InvestorRating         PIC X.
    
       SD  MERGE-FILE.
       01  MERGE-REC.
           05  M-InvestorID             PIC X(2).
           05  M-InvestorName           PIC X(5).
           05  M-InvestorRating         PIC X.
    
       SCREEN SECTION.
       01  TITLE SCREEN.
           05  BLANK SCREEN
               FOREGROUND-COLOR BLACK
               BACKGROUND-COLOR WHITE.
           05  LINE 4 COLUMN 15
               VALUE "STOCKS REPORT GENERATOR"
       01  YEAR-QUESTION-SCREEN.
           05  YEAR-ANSWERS.
               10  LINE 7 COLUMN 10
                   VALUE "What year would you like to search for?".
               10  LINE 9 COLUMN 15
                   VALUE "2005".
               10  LINE 9 COLUMN 15
                   VALUE "2006".
               10  LINE 9 COLUMN 15
                   VALUE "2007".
               10  LINE 9 COLUMN 15
                   VALUE "2008".
               10  LINE 9 COLUMN 15
                   VALUE "2009".
               10  LINE 9 COLUMN 15
                   VALUE "2010".
               10  LINE 9 COLUMN 15
                   VALUE "2011".
    
       FD MASTER-STOCK-REPORT.
       01 MASTER-REC                    PIC X(122).
    
       PROCEDURE DIVISION.
       100-MAIN.
       BEGIN.
           MERGE MERGE-FILE
               ON ASCENDING KEY M-InvestorID
               USING STOCK-REPORT-A
                   STOCK-REPORT-B
               GIVING MASTER-STOCK-REPORT.
           STOP RUN.
     
    22 November 2011
    user1058707
3 answers
  • Ich bevorzuge die Sortierung und Zusammenführung über DFSORT in JCL und gebe dann diese Datei in das COBOL-Programm ein, das die Benutzereingabe übernimmt und die erforderlichen Ausgaben liefert. Das Sortieren und Zusammenführen von Programmen ist langsamer als draußen, natürlich ...

    22 November 2011
    Raja Reddy
  • Hier finden Sie Beispiele zum Sortieren und Zusammenführen. Führen Sie dazu einfach einen zweistufigen Vorgang aus.

    http://www.csis.ul.ie/cobol/examples/default.htm#Sort

    22 November 2011
    Hitham S. AlQadheeb
  • Sie müssen und nicht zusammenführen. Sie können beide Dateien SORTIEREN, indem Sie die beiden Eingabedateien in der USING-Phrase des SORT-Verbs angeben.

    Wenn Sie nicht sicher sind, ob dies die richtigen Ergebnisse liefert, können Sie experimentieren mit SORT, SORT, MERGE und vergleichen Sie dann die Ausgabedatei mit der obigen. Oder setzen Sie sich mit einem Blatt Papier und einem Bleistift hin und arbeiten Sie ihn durch.

    10 April 2013
    Bill Woodgerjemz