home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1978-01-07 | 9.5 KB | 306 lines |
- ' This program is copyright and program by
- ' Paul Howard Selwood.
- ' 5 Sorrel Close.
- ' Padgate.
- ' Warrington.
- ' WA2 OUF.
- ' Date started 21. June. 1992.
- 'THE START OF THE PROGRAM
- ' Setting up the data and program
- Set Buffer 30
- Dim PAUL_SELWOOD$(2000)
- Follow
- Auto View Off
- Load Iff "data",2
- Screen Open 1,640,240,8,Hires : Paper 0 : Curs Off : Cls 0 : Flash Off
- Screen Open 0,640,240,8,Hires : Paper 0 : Curs Off : Cls 0 : Flash Off
- Reserve Zone 7 : Request On : Autoback 0 : Break Off : Hide On
- Amos To Front : Screen To Front 2 : View
- FILE_STAT$="Close" : NUMBER_OF_RECORDS=0
- Screen To Front 2
- Repeat
- Until Mouse Click
- Screen 2 : Fade 2 : Wait 16 : Screen Close 2
- '
- Procedure LINE_ONE
- Curs Off : Cls 0 : Under On : Pen 5 : Home
- End Proc
- '
- Procedure LINE_TWO
- Cmove 0,3 : Pen 4 : Centre "Enter an Option." : Pen 6 : Under Off
- End Proc
- '
- Procedure MAIN_MENU
- Screen 0
- LINE_ONE
- Pen 6 : Locate ,0 : Centre "WORD SORT." : Pen 5
- Locate ,2 : Centre "Main Menu." : LINE_TWO
- Limit Mouse 285,100 To 410,280 : Reset Zone
- Locate ,8 : A$=Border$("Add Words to a File.",1) : Centre Zone$(A$,1)
- Locate ,12 : A$=Border$("Directory of Drive.",1) : Centre Zone$(A$,2)
- Locate ,16 : A$=Border$("Delete a Word from a file.",1) : Centre Zone$(A$,3)
- Locate ,20 : A$=Border$("Print File to screen.",1) : Centre Zone$(A$,4)
- Locate ,24 : A$=Border$("Open a New File.",1) : Centre Zone$(A$,5)
- Locate ,28 : A$=Border$("Print file.",1) : Centre Zone$(A$,6) : Pen 5
- Locate 68,14 : A$=Border$("EXIT",1) : Print Zone$(A$,7)
- Under On : Pen 4 : Locate 0,28 : Print "P.Selwood. 1992." : Under Off
- Show On : Screen To Front 0 : View
- End Proc
- '
- Procedure FILE_STAT
- Shared FILE_STAT$
- If FILE_STAT$="Open"
- Close 1 : FILE_STAT$="Close"
- End If
- End Proc
- '
- Procedure NO_FILE_FOUND
- Bell : Border ,3, : Wind Open 2,10,10,30,10,1 : Ink 4 : Pen 2
- Print "Sorry No File of that name found." : Cdown : Pen 5
- Print "Press Mouse button to carry on."
- Repeat
- Until Mouse Click
- Wind Close
- End Proc
- '
- Procedure FILE_TEST
- Shared FILE_NAME$,TEST
- If FILE_NAME$=""
- NO_FILE_FOUND
- MAIN_MENU
- TEST=1
- End If
- End Proc
- '
- Procedure ENTER_WORDS
- Shared FILE_STAT$,NUMBER_OF_RECORDS,PAUL_SELWOOD$(),TEST,FILE_NAME$
- FILE_STAT
- Show On : FILE_NAME$=Fsel$("*.file","","Enter name of file to add words.")
- Hide On : Curs On
- BACK_UP$=FILE_NAME$+"BU"
- FILE_TEST
- If TEST=1 Then Pop Proc
- If Exist(FILE_NAME$)
- Border ,3, : Wind Open 2,10,10,30,10,1 : Ink 4 : Pen 2
- Print "Please wait loading data."
- Open In 1,FILE_NAME$ : Open Out 2,BACK_UP$
- NUMBER_OF_RECORDS=0
- If Lof(1)<>0
- Repeat
- Inc NUMBER_OF_RECORDS
- Input #1,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
- Print #2,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
- TEST_FILE=Eof(1)
- Until TEST_FILE=-1
- Dec NUMBER_OF_RECORDS
- End If
- Close 1 : Close 2 : Wind Close
- Cls 0
- LINE_ONE
- Locate 0,2 : Centre "Just press Return to stop entering records."
- Cmove ,2 : Centre "Number of Records" : Print NUMBER_OF_RECORDS
- LINE_TWO
- Cmove ,3 : Centre "Press any key to start adding data." : Wait Key
- Cls 0 : Home
- Locate 0,4 : Memorize X : Memorize Y
- Repeat
- Pen 5 : Locate 30,0 : Print "Free memory ";Free : Pen 6
- Inc NUMBER_OF_RECORDS : Remember X : Remember Y
- Input PAUL_SELWOOD$(NUMBER_OF_RECORDS)
- PAUL_SELWOOD$(NUMBER_OF_RECORDS)=Upper$(PAUL_SELWOOD$(NUMBER_OF_RECORDS))
- Memorize X : Memorize Y
- Until PAUL_SELWOOD$(NUMBER_OF_RECORDS)=""
- Dec NUMBER_OF_RECORDS
- Cls 0 : Home : Centre "Number of Records" : Print NUMBER_OF_RECORDS
- Cmove ,2 : Centre "Sorting out."
- For PASS_1=0 To NUMBER_OF_RECORDS-1
- For PASS_2=0 To NUMBER_OF_RECORDS
- If PAUL_SELWOOD$(PASS_2)>PAUL_SELWOOD$(PASS_2+1)
- TEMP$=PAUL_SELWOOD$(PASS_2)
- PAUL_SELWOOD$(PASS_2)=PAUL_SELWOOD$(PASS_2+1)
- PAUL_SELWOOD$(PASS_2+1)=TEMP$
- End If
- Next PASS_2
- Next PASS_1
- For PASS_1=0 To NUMBER_OF_RECORDS
- For PASS_2=0 To NUMBER_OF_RECORDS
- If PAUL_SELWOOD$(PASS_2)=PAUL_SELWOOD$(PASS_2+1)
- PAUL_SELWOOD$(PASS_2+1)=PAUL_SELWOOD$(PASS_2+2)
- End If
- Next PASS_2
- Next PASS_1
- Cmove ,2 : Centre "Saving data."
- Open Out 1,FILE_NAME$
- NUMBER=0
- Repeat
- Inc NUMBER
- Print #1,PAUL_SELWOOD$(NUMBER)
- Until PAUL_SELWOOD$(NUMBER)=""
- Close 1 : Curs Off : FILE_STAT$="Close"
- Else
- NO_FILE_FOUND
- End If
- MAIN_MENU
- End Proc
- '
- Procedure OPEN_FILE
- Shared FILE_STAT$
- FILE_STAT
- Show On : FILE_NAME$=Fsel$("*.file","","Enter name of new file.")
- Hide On : FILE_NAME$=FILE_NAME$+".FILE"
- If FILE_NAME$<>""
- Open Out 1,FILE_NAME$ : FILE_STAT$="Open"
- End If
- MAIN_MENU
- End Proc
- '
- Procedure LIST_RECORDS
- Shared FILE_STAT$,PAUL_SELWOOD$(),TEST,FILE_NAME$
- FILE_STAT
- Show On : FILE_NAME$=Fsel$("*.file","","File to be listed.")
- Hide On
- FILE_TEST
- If TEST=1 Then Pop Proc
- If Exist(FILE_NAME$)
- Screen 1 : Cls 0 : Home : Screen To Front 1
- Open In 1,FILE_NAME$ : FILE_STAT$="Open"
- If Lof(1)<>0
- NUMBER_OF_RECORDS=0
- Cmove ,2 : Centre "Lenght of file" : Print Lof(1) : Pen 4
- Cmove ,2 : Centre "Press mouse key to see more data." : Pen 2
- Cdown : View
- Repeat
- Inc NUMBER_OF_RECORDS : Input #1,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
- WORD_1$=Left$(PAUL_SELWOOD$(NUMBER_OF_RECORDS),1)
- If X Curs>70
- Cdown : Locate 0,
- End If
- If Y Curs>27
- Vscroll 3 : Cup
- Repeat
- Until Mouse Click
- End If
- If WORD_1$>WORD_2$
- Cmove ,1 : Locate 0,
- End If
- Print PAUL_SELWOOD$(NUMBER_OF_RECORDS);", "; : TEST_FILE=Eof(1)
- WORD_2$=Left$(PAUL_SELWOOD$(NUMBER_OF_RECORDS),1)
- If PAUL_SELWOOD$(NUMBER_OF_RECORDS)=""
- Cdown : Bell : Pen 6 : Centre "THE END." : Pen 2 : Cmove ,1
- Centre "Press mouse key" : Wait 30
- Repeat
- Until Mouse Click
- End If
- Until TEST_FILE=-1
- End If
- Else
- NO_FILE_FOUND
- End If
- MAIN_MENU
- End Proc
- '
- Procedure TYPE_OUT_RECORDS
- Shared FILE_STAT$,PAUL_SELWOOD$(),TEST,FILE_NAME$
- FILE_STAT
- Show On : FILE_NAME$=Fsel$("*.file","","File to be printed.")
- Hide On
- FILE_TEST
- If TEST=1 Then Pop Proc
- If Exist(FILE_NAME$)
- Open In 1,FILE_NAME$
- If Lof(1)<>0
- NUMBER_OF_RECORDS=0 : Cls 0 : Home
- WORD$=""
- Repeat
- Inc NUMBER_OF_RECORDS : Input #1,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
- WORD_1$=Left$(PAUL_SELWOOD$(NUMBER_OF_RECORDS),1)
- If WORD_1$>WORD_2$
- If X Curs>70
- Cdown : Locate 0,
- End If
- If Y Curs>28
- Vscroll 3 : Cup
- End If
- Lprint PAUL_SELWOOD$(NUMBER_OF_RECORDS)
- Cmove ,1 : Locate 0, : WORD$=""
- End If
- WORD$=WORD$+PAUL_SELWOOD$(NUMBER_OF_RECORDS)+", "
- WORD_2$=Left$(PAUL_SELWOOD$(NUMBER_OF_RECORDS),1)
- Until PAUL_SELWOOD$(NUMBER_OF_RECORDS+1)=""
- End If
- Close 1 : FILE_STAT$="Close"
- End If
- MAIN_MENU
- End Proc
- '
- Procedure LIST_DIR
- Screen 1
- LINE_ONE
- Hide On
- Centre "Dir of your currant drive." : Under Off
- Pen 6 : Cmove ,2 : Centre "Press Mouse key to Exit."
- Pen 4 : Dir : Screen To Front 1 : View
- Repeat
- Until Mouse Click
- MAIN_MENU
- End Proc
- '
- Procedure DELETE_A_WORD
- Shared FILE_STAT$,PAUL_SELWOOD$(),TEST,FILE_NAME$
- FILE_STAT
- Show On : FILE_NAME$=Fsel$("*.file","","File of Word to be delete.")
- Hide On
- FILE_TEST
- If TEST=1 Then Pop Proc
- If Exist(FILE_NAME$)
- Open In 1,FILE_NAME$
- If Lof(1)<>0
- NUMBER_OF_RECORDS=0 : Cls 0 : Home : FILE_TEST=0
- Locate 10,10 : Centre "Input word to be delete." : Pen 6
- Locate 28,12 : Input WORD_NAME$ : WORD_NAME$=Upper$(WORD_NAME$)
- Repeat
- Inc NUMBER_OF_RECORDS : Input #1,PAUL_SELWOOD$(NUMBER_OF_RECORDS)
- WORD$=PAUL_SELWOOD$(NUMBER_OF_RECORDS)
- If WORD_NAME$=WORD$
- Dec NUMBER_OF_RECORDS : Cmove ,2 : Pen 5 : FILE_TEST=1
- Centre "Word found and deleted."
- End If
- TEST_FILE=Eof(1)
- Until TEST_FILE=-1
- End If
- Close 1
- If FILE_TEST=1
- Open Out 1,FILE_NAME$
- NUMBER=0
- Pen 1 : Cmove ,2 : Centre "Saving data." : Pen 2
- Repeat
- Inc NUMBER
- Print #1,PAUL_SELWOOD$(NUMBER)
- Until PAUL_SELWOOD$(NUMBER)=""
- Close 1 : Curs Off : FILE_STAT$="Close"
- Else
- Cdown : Centre "Sorry word not found in file " : Pen 5
- Cmove ,2 : Centre FILE_NAME$
- End If
- Pen 2 : Cmove ,2 : Centre "Press mouse key."
- Repeat
- Until Mouse Click
- Else
- NO_FILE_FOUND
- End If
- MAIN_MENU
- End Proc
- '
- MAIN_MENU
- View
- Repeat
- TEST=0
- MAIN_MENU=Mouse Zone
- If Mouse Key=1 and MAIN_MENU=1 Then ENTER_WORDS
- If Mouse Key=1 and MAIN_MENU=2 Then LIST_DIR
- If Mouse Key=1 and MAIN_MENU=3 Then DELETE_A_WORD
- If Mouse Key and MAIN_MENU=4 Then LIST_RECORDS
- If Mouse Key and MAIN_MENU=5 Then OPEN_FILE
- If Mouse Key and MAIN_MENU=6 Then TYPE_OUT_RECORDS
- Until Mouse Key and MAIN_MENU=7
- Edit