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