000100 cbl ssrange 000200 Identification Division. 000300 Program-Id. TOP202. 000400 Environment Division. 000500 Configuration Section. 000600 Special-Names. 000700 Decimal-Point is Comma 000800 . 000900 Input-Output Section. 001000 File-Control. 001100 Select Top20-Fil Assign to TOP20FIL 001200 Organization is Sequential 001300 Access Is Sequential 001400 . 001500 Select Top20-Rapport Assign to TOP20RPT 001600 Organization is Sequential 001700 Access Is Sequential 001800 . 001900 Select Top20-Sortfil Assign to SORTDD 002000 . 002100 Data Division. 002200 File Section. 002300 FD Top20-Fil Recording F. 002400 01 Top20-Fil-Post Pic X(80). 002500 88 Inga-Fler-Top20-Fil-Poster Value High-Value. 002600 002700 FD Top20-Rapport Recording F. 002800 01 Rapport-Post Pic X(120). 002900 003000 SD Top20-Sortfil. 003100 01 Top20-Sortfil-Post. 003200 88 Inga-Fler-Top20-Sortfil-Poster Value High-Value. 003300 05 Sortfil-TT-Text Pic X(30). 003400 05 Sortfil-TT-Antal Pic 9(03). 003500 003600 Working-Storage Section. 003700 01 Convert-Strang. 003800 49 FranTecken Pic X(06) Value '.,+=;"'. 003900 49 TillTecken Pic X(06) Value All Space. 004000 004100 01 Raknarna. 004200 49 Raknare Pic 9(02). 004300 88 Spara-Ord-Klar Value 99. 004400 004500 49 Sparade-Antal Pic 9(04) Value 0. 004600 88 Sparade-MaxAntal Value 1000. 004700 004800 49 Unstring-Antal Pic 9(02) Value 0. 004900 88 Unstring-MaxAntal Value 25. 005000 005100 49 Unstring-Pekare Pic 9(02). 005200 005300 49 Ord-Maxantal Pic 9(02) Value 20. 005400 005500 49 Sort-Antal Pic 9(02). 005600 88 Sort-Maxantal Value 20. 005700 005800 01 Unstring-Tabell. 005900 05 Unstring-Ord Pic X(30) Occurs 25. 006000 006100 01 Sparade-Ord-Tabell. 006200 05 Sparade-Ord Occurs 1000 006300 Depending on Sparade-Antal 006400 Indexed By SOX1 006500 . 006600 10 Sparade-Ord-Text Pic X(30). 006700 10 Sparade-Ord-Antal Pic 9(03) Value Zero. 006800 006900 01 Rapport-Blankrad Pic X(10) Value Space. 007000 007100 01 Rapport-Slutrad. 007200 05 Pic X(13). 007300 05 Pic X(60) Value '*** S L U T på rapport ***'. 007400 007500 01 Rapport-Summarad. 007600 05 Pic X(17) Value 'Det finns totalt '. 007700 05 Summarad-Ord-Antal Pic Z(03). 007800 05 Pic X(30) Value ' olika ord i denna artikel.'. 007900 008000 01 Rapport-Rubrik. 008100 05 Pic X(13). 008200 05 Pic X(60) Value '*** Topp 20 ord i artikel ***'. 008300 008400 01 Rapport-Sid-Rubrik. 008500 05 Pic X(05) Value 'Pos'. 008600 05 Pic X(08) Value 'Antal'. 008700 05 Pic X(30) Value 'Dokument-ord'. 008800 05 Pic X(10) Value 'Procent'. 008900 009000 01 Rapport-Detalj. 009100 05 Pic X(01) Value '('. 009200 05 TT-Pos Pic 9(02). 009300 05 Pic X(02) Value ') '. 009400 05 TT-Antal Pic Z(03). 009500 05 Pic X(05). 009600 05 TT-Text Pic X(30). 009700 05 TT-Procent Pic Z(02)9,99. 009800 009900 Procedure Division. 010000 Perform Oppna-Alla-Filer 010100 Perform Until Inga-Fler-Top20-Fil-Poster 010200 Read Top20-Fil 010300 At End 010400 Set Inga-Fler-Top20-Fil-Poster to True 010500 Not At End 010600 Perform Separera-Ord 010700 Perform Spara-Ord 010800 End-Read 010900 End-Perform 011000 Perform Sortera-Ord-Tabell 011100 Perform Stang-Alla-Filer 011200 GoBack 011300 . 011400 Separera-Ord. 011500 Inspect Top20-Fil-Post 011600 Converting FranTecken to TillTecken 011700 Move 1 to Unstring-Pekare 011800 Perform With Test After 011900 Varying Unstring-Antal 012000 From 1 by 1 Until Unstring-Maxantal 012100 Or Unstring-Pekare > Length Of Top20-Fil-Post 012200 Unstring Top20-Fil-Post 012300 Delimited By All Space 012400 Into Unstring-Ord(Unstring-Antal) 012500 With Pointer Unstring-Pekare 012600 End-Unstring 012700 End-Perform 012800 . 012900 Spara-Ord. 013000 Perform With Test After 013100 Varying Raknare from 1 by 1 013200 Until Raknare = Unstring-Antal 013300 Set SOX1 to 1 013400 Search Sparade-Ord 013500 At End 013600 Add 1 to Sparade-Antal 013700 Move Unstring-Ord(Raknare) to 013800 Sparade-Ord-Text(Sparade-Antal) 013900 Add 1 to Sparade-Ord-Antal(Sparade-Antal) 014000 When Unstring-Ord(Raknare) = 014100 Sparade-Ord-Text(SOX1) 014200 Add 1 to Sparade-Ord-Antal(SOX1) 014300 End-Search 014400 End-Perform 014500 . 014600 Sortera-Ord-Tabell. 014700 Sort Top20-Sortfil 014800 On Descending Key Sortfil-TT-Antal 014900 Ascending Key Sortfil-TT-Text 015000 With Duplicates 015100 Input Procedure Release-Ord-Tabell 015200 Output Procedure Return-och-Skrivut-Ord-Tabell 015300 015400 Display 'Sortering klar, Sort-Return ' Sort-Return 015500 . 015600 Release-Ord-Tabell. 015700 Perform Varying SOX1 from 1 by 1 015800 Until SOX1 > Sparade-Antal 015900 Release Top20-Sortfil-Post 016000 From Sparade-Ord(SOx1) 016100 End-Perform 016200 . 016300 Return-och-Skrivut-Ord-Tabell. 016400 Write Rapport-Post from Rapport-Rubrik 016500 Write Rapport-Post from Rapport-Sid-Rubrik 016600 Perform With Test After 016700 Varying Sort-Antal from 1 by 1 016800 Until Sort-Maxantal 016900 or Inga-Fler-Top20-Sortfil-Poster 017000 Return Top20-Sortfil 017100 At End 017200 Set Inga-Fler-Top20-Sortfil-Poster to True 017300 Not AT End 017400 Perform Skrivut-TT-Ord-Tabell 017500 End-Return 017600 End-Perform 017700 Move Sparade-Antal to Summarad-Ord-Antal 017800 Write Rapport-Post from Rapport-Blankrad 017900 Write Rapport-Post from Rapport-Summarad 018000 Write Rapport-Post from Rapport-Blankrad 018100 Write Rapport-Post from Rapport-SlutRad 018200 . 018300 Skrivut-TT-Ord-Tabell. 018400 Move Sort-Antal to TT-Pos 018500 Move Sortfil-TT-Text to TT-Text 018600 Move Sortfil-TT-Antal to TT-Antal 018700 Divide Sortfil-TT-Antal 018800 By Sparade-Antal 018900 Giving TT-Procent Rounded 019000 Write Rapport-Post from Rapport-Detalj 019100 . 019200 Oppna-Alla-Filer. 019300 Open Input Top20-Fil 019400 Open Output Top20-Rapport 019500 Display 'Alla filer är öppnade...' 019600 . 019700 Stang-Alla-Filer. 019800 Close Top20-Fil 019900 Close Top20-Rapport 020000 Display 'Alla filer är stangda...' 020100 . 020200 End Program TOP202.