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