home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 2: Collection B / 17Bit_Collection_B.iso / files / 2149.dms / in.adf / sort.S / sort.amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  1978-01-07  |  9.5 KB  |  306 lines

  1. ' This program is copyright and program by 
  2. ' Paul Howard Selwood. 
  3. ' 5 Sorrel Close.    
  4. ' Padgate. 
  5. ' Warrington.
  6. ' WA2 OUF. 
  7. ' Date started 21. June. 1992. 
  8. 'THE START OF THE PROGRAM
  9. ' Setting up the data and program
  10. Set Buffer 30
  11. Dim PAUL_SELWOOD$(2000)
  12. Follow 
  13. Auto View Off 
  14. Load Iff "data",2
  15. Screen Open 1,640,240,8,Hires : Paper 0 : Curs Off : Cls 0 : Flash Off 
  16. Screen Open 0,640,240,8,Hires : Paper 0 : Curs Off : Cls 0 : Flash Off 
  17. Reserve Zone 7 : Request On : Autoback 0 : Break Off : Hide On 
  18. Amos To Front : Screen To Front 2 : View 
  19. FILE_STAT$="Close" : NUMBER_OF_RECORDS=0
  20. Screen To Front 2
  21. Repeat 
  22. Until Mouse Click
  23. Screen 2 : Fade 2 : Wait 16 : Screen Close 2
  24. '
  25. Procedure LINE_ONE
  26.    Curs Off : Cls 0 : Under On : Pen 5 : Home 
  27. End Proc
  28. '
  29. Procedure LINE_TWO
  30.    Cmove 0,3 : Pen 4 : Centre "Enter an Option." : Pen 6 : Under Off 
  31. End Proc
  32. '
  33. Procedure MAIN_MENU
  34.    Screen 0
  35.    LINE_ONE
  36.    Pen 6 : Locate ,0 : Centre "WORD SORT." : Pen 5
  37.    Locate ,2 : Centre "Main Menu." : LINE_TWO
  38.    Limit Mouse 285,100 To 410,280 : Reset Zone 
  39.    Locate ,8 : A$=Border$("Add Words to a File.",1) : Centre Zone$(A$,1)
  40.    Locate ,12 : A$=Border$("Directory of Drive.",1) : Centre Zone$(A$,2)
  41.    Locate ,16 : A$=Border$("Delete a Word from a file.",1) : Centre Zone$(A$,3)
  42.    Locate ,20 : A$=Border$("Print File to screen.",1) : Centre Zone$(A$,4)
  43.    Locate ,24 : A$=Border$("Open a New File.",1) : Centre Zone$(A$,5)
  44.    Locate ,28 : A$=Border$("Print file.",1) : Centre Zone$(A$,6) : Pen 5
  45.    Locate 68,14 : A$=Border$("EXIT",1) : Print Zone$(A$,7)
  46.    Under On : Pen 4 : Locate 0,28 : Print "P.Selwood. 1992." : Under Off 
  47.    Show On : Screen To Front 0 : View 
  48. End Proc
  49. '
  50. Procedure FILE_STAT
  51.    Shared FILE_STAT$
  52.    If FILE_STAT$="Open"
  53.       Close 1 : FILE_STAT$="Close"
  54.    End If 
  55. End Proc
  56. '
  57. Procedure NO_FILE_FOUND
  58.    Bell : Border ,3, : Wind Open 2,10,10,30,10,1 : Ink 4 : Pen 2
  59.    Print "Sorry No File of that name  found." : Cdown : Pen 5
  60.    Print "Press Mouse button to carry on."
  61.    Repeat 
  62.    Until Mouse Click
  63.    Wind Close 
  64. End Proc
  65. '
  66. Procedure FILE_TEST
  67.    Shared FILE_NAME$,TEST
  68.    If FILE_NAME$=""
  69.       NO_FILE_FOUND
  70.       MAIN_MENU
  71.       TEST=1
  72.    End If 
  73. End Proc
  74. '
  75. Procedure ENTER_WORDS
  76.    Shared FILE_STAT$,NUMBER_OF_RECORDS,PAUL_SELWOOD$(),TEST,FILE_NAME$
  77.    FILE_STAT
  78.    Show On : FILE_NAME$=Fsel$("*.file","","Enter name of file to add words.")
  79.    Hide On : Curs On 
  80.    BACK_UP$=FILE_NAME$+"BU"
  81.    FILE_TEST
  82.    If TEST=1 Then Pop Proc
  83.    If Exist(FILE_NAME$)
  84.       Border ,3, : Wind Open 2,10,10,30,10,1 : Ink 4 : Pen 2
  85.       Print "Please wait loading data."
  86.       Open In 1,FILE_NAME$ : Open Out 2,BACK_UP$
  87.       NUMBER_OF_RECORDS=0
  88.       If Lof(1)<>0
  89.          Repeat 
  90.             Inc NUMBER_OF_RECORDS
  91.             Input #1,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
  92.             Print #2,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
  93.             TEST_FILE=Eof(1)
  94.          Until TEST_FILE=-1
  95.          Dec NUMBER_OF_RECORDS
  96.       End If 
  97.       Close 1 : Close 2 : Wind Close 
  98.       Cls 0
  99.       LINE_ONE
  100.       Locate 0,2 : Centre "Just press Return to stop entering records."
  101.       Cmove ,2 : Centre "Number of Records" : Print NUMBER_OF_RECORDS
  102.       LINE_TWO
  103.       Cmove ,3 : Centre "Press any key to start adding data." : Wait Key 
  104.       Cls 0 : Home 
  105.       Locate 0,4 : Memorize X : Memorize Y 
  106.       Repeat 
  107.          Pen 5 : Locate 30,0 : Print "Free memory ";Free : Pen 6
  108.          Inc NUMBER_OF_RECORDS : Remember X : Remember Y 
  109.          Input PAUL_SELWOOD$(NUMBER_OF_RECORDS)
  110.          PAUL_SELWOOD$(NUMBER_OF_RECORDS)=Upper$(PAUL_SELWOOD$(NUMBER_OF_RECORDS))
  111.          Memorize X : Memorize Y 
  112.       Until PAUL_SELWOOD$(NUMBER_OF_RECORDS)=""
  113.       Dec NUMBER_OF_RECORDS
  114.       Cls 0 : Home : Centre "Number of Records" : Print NUMBER_OF_RECORDS
  115.       Cmove ,2 : Centre "Sorting out."
  116.       For PASS_1=0 To NUMBER_OF_RECORDS-1
  117.          For PASS_2=0 To NUMBER_OF_RECORDS
  118.             If PAUL_SELWOOD$(PASS_2)>PAUL_SELWOOD$(PASS_2+1)
  119.                TEMP$=PAUL_SELWOOD$(PASS_2)
  120.                PAUL_SELWOOD$(PASS_2)=PAUL_SELWOOD$(PASS_2+1)
  121.                PAUL_SELWOOD$(PASS_2+1)=TEMP$
  122.             End If 
  123.          Next PASS_2
  124.       Next PASS_1
  125.       For PASS_1=0 To NUMBER_OF_RECORDS
  126.          For PASS_2=0 To NUMBER_OF_RECORDS
  127.             If PAUL_SELWOOD$(PASS_2)=PAUL_SELWOOD$(PASS_2+1)
  128.                PAUL_SELWOOD$(PASS_2+1)=PAUL_SELWOOD$(PASS_2+2)
  129.             End If 
  130.          Next PASS_2
  131.       Next PASS_1
  132.       Cmove ,2 : Centre "Saving data."
  133.       Open Out 1,FILE_NAME$
  134.       NUMBER=0
  135.       Repeat 
  136.          Inc NUMBER
  137.          Print #1,PAUL_SELWOOD$(NUMBER)
  138.       Until PAUL_SELWOOD$(NUMBER)=""
  139.       Close 1 : Curs Off : FILE_STAT$="Close"
  140.    Else 
  141.       NO_FILE_FOUND
  142.    End If 
  143.    MAIN_MENU
  144. End Proc
  145. '
  146. Procedure OPEN_FILE
  147.    Shared FILE_STAT$
  148.    FILE_STAT
  149.    Show On : FILE_NAME$=Fsel$("*.file","","Enter name of new file.")
  150.    Hide On : FILE_NAME$=FILE_NAME$+".FILE"
  151.    If FILE_NAME$<>""
  152.       Open Out 1,FILE_NAME$ : FILE_STAT$="Open"
  153.    End If 
  154.    MAIN_MENU
  155. End Proc
  156. '
  157. Procedure LIST_RECORDS
  158.    Shared FILE_STAT$,PAUL_SELWOOD$(),TEST,FILE_NAME$
  159.    FILE_STAT
  160.    Show On : FILE_NAME$=Fsel$("*.file","","File to be listed.")
  161.    Hide On 
  162.    FILE_TEST
  163.    If TEST=1 Then Pop Proc
  164.    If Exist(FILE_NAME$)
  165.       Screen 1 : Cls 0 : Home : Screen To Front 1
  166.       Open In 1,FILE_NAME$ : FILE_STAT$="Open"
  167.       If Lof(1)<>0
  168.          NUMBER_OF_RECORDS=0
  169.          Cmove ,2 : Centre "Lenght of file" : Print Lof(1) : Pen 4
  170.          Cmove ,2 : Centre "Press mouse key to see more data." : Pen 2
  171.          Cdown : View 
  172.          Repeat 
  173.             Inc NUMBER_OF_RECORDS : Input #1,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
  174.             WORD_1$=Left$(PAUL_SELWOOD$(NUMBER_OF_RECORDS),1)
  175.             If X Curs>70
  176.                Cdown : Locate 0,
  177.             End If 
  178.             If Y Curs>27
  179.                Vscroll 3 : Cup 
  180.                Repeat 
  181.                Until Mouse Click
  182.             End If 
  183.             If WORD_1$>WORD_2$
  184.                Cmove ,1 : Locate 0,
  185.             End If 
  186.             Print PAUL_SELWOOD$(NUMBER_OF_RECORDS);",  "; : TEST_FILE=Eof(1)
  187.             WORD_2$=Left$(PAUL_SELWOOD$(NUMBER_OF_RECORDS),1)
  188.             If PAUL_SELWOOD$(NUMBER_OF_RECORDS)=""
  189.                Cdown : Bell : Pen 6 : Centre "THE END." : Pen 2 : Cmove ,1
  190.                Centre "Press mouse key" : Wait 30
  191.                Repeat 
  192.                Until Mouse Click
  193.             End If 
  194.          Until TEST_FILE=-1
  195.       End If 
  196.    Else 
  197.       NO_FILE_FOUND
  198.    End If 
  199.    MAIN_MENU
  200. End Proc
  201. '
  202. Procedure TYPE_OUT_RECORDS
  203.    Shared FILE_STAT$,PAUL_SELWOOD$(),TEST,FILE_NAME$
  204.    FILE_STAT
  205.    Show On : FILE_NAME$=Fsel$("*.file","","File to be printed.")
  206.    Hide On 
  207.    FILE_TEST
  208.    If TEST=1 Then Pop Proc
  209.    If Exist(FILE_NAME$)
  210.       Open In 1,FILE_NAME$
  211.       If Lof(1)<>0
  212.          NUMBER_OF_RECORDS=0 : Cls 0 : Home 
  213.          WORD$=""
  214.          Repeat 
  215.             Inc NUMBER_OF_RECORDS : Input #1,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
  216.             WORD_1$=Left$(PAUL_SELWOOD$(NUMBER_OF_RECORDS),1)
  217.             If WORD_1$>WORD_2$
  218.                If X Curs>70
  219.                   Cdown : Locate 0,
  220.                End If 
  221.                If Y Curs>28
  222.                   Vscroll 3 : Cup 
  223.                End If 
  224.                Lprint PAUL_SELWOOD$(NUMBER_OF_RECORDS)
  225.                Cmove ,1 : Locate 0, : WORD$=""
  226.             End If 
  227.             WORD$=WORD$+PAUL_SELWOOD$(NUMBER_OF_RECORDS)+",  "
  228.             WORD_2$=Left$(PAUL_SELWOOD$(NUMBER_OF_RECORDS),1)
  229.          Until PAUL_SELWOOD$(NUMBER_OF_RECORDS+1)=""
  230.       End If 
  231.       Close 1 : FILE_STAT$="Close"
  232.    End If 
  233.    MAIN_MENU
  234. End Proc
  235. '
  236. Procedure LIST_DIR
  237.    Screen 1
  238.    LINE_ONE
  239.    Hide On 
  240.    Centre "Dir of your currant drive." : Under Off 
  241.    Pen 6 : Cmove ,2 : Centre "Press Mouse key to Exit."
  242.    Pen 4 : Dir : Screen To Front 1 : View 
  243.    Repeat 
  244.    Until Mouse Click
  245.    MAIN_MENU
  246. End Proc
  247. '
  248. Procedure DELETE_A_WORD
  249.    Shared FILE_STAT$,PAUL_SELWOOD$(),TEST,FILE_NAME$
  250.    FILE_STAT
  251.    Show On : FILE_NAME$=Fsel$("*.file","","File of Word to be delete.")
  252.    Hide On 
  253.    FILE_TEST
  254.    If TEST=1 Then Pop Proc
  255.    If Exist(FILE_NAME$)
  256.       Open In 1,FILE_NAME$
  257.       If Lof(1)<>0
  258.          NUMBER_OF_RECORDS=0 : Cls 0 : Home : FILE_TEST=0
  259.          Locate 10,10 : Centre "Input word to be delete." : Pen 6
  260.          Locate 28,12 : Input WORD_NAME$ : WORD_NAME$=Upper$(WORD_NAME$)
  261.          Repeat 
  262.             Inc NUMBER_OF_RECORDS : Input #1,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
  263.             WORD$=PAUL_SELWOOD$(NUMBER_OF_RECORDS)
  264.             If WORD_NAME$=WORD$
  265.                Dec NUMBER_OF_RECORDS : Cmove ,2 : Pen 5 : FILE_TEST=1
  266.                Centre "Word found and deleted."
  267.             End If 
  268.             TEST_FILE=Eof(1)
  269.          Until TEST_FILE=-1
  270.       End If 
  271.       Close 1
  272.       If FILE_TEST=1
  273.          Open Out 1,FILE_NAME$
  274.          NUMBER=0
  275.          Pen 1 : Cmove ,2 : Centre "Saving data." : Pen 2
  276.          Repeat 
  277.             Inc NUMBER
  278.             Print #1,PAUL_SELWOOD$(NUMBER)
  279.          Until PAUL_SELWOOD$(NUMBER)=""
  280.          Close 1 : Curs Off : FILE_STAT$="Close"
  281.       Else 
  282.          Cdown : Centre "Sorry word not found in file " : Pen 5
  283.          Cmove ,2 : Centre FILE_NAME$
  284.       End If 
  285.       Pen 2 : Cmove ,2 : Centre "Press mouse key."
  286.       Repeat 
  287.       Until Mouse Click
  288.    Else 
  289.       NO_FILE_FOUND
  290.    End If 
  291.    MAIN_MENU
  292. End Proc
  293. '
  294. MAIN_MENU
  295. View 
  296. Repeat 
  297.    TEST=0
  298.    MAIN_MENU=Mouse Zone
  299.    If Mouse Key=1 and MAIN_MENU=1 Then ENTER_WORDS
  300.    If Mouse Key=1 and MAIN_MENU=2 Then LIST_DIR
  301.    If Mouse Key=1 and MAIN_MENU=3 Then DELETE_A_WORD
  302.    If Mouse Key and MAIN_MENU=4 Then LIST_RECORDS
  303.    If Mouse Key and MAIN_MENU=5 Then OPEN_FILE
  304.    If Mouse Key and MAIN_MENU=6 Then TYPE_OUT_RECORDS
  305. Until Mouse Key and MAIN_MENU=7
  306. Edit