Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- * TWH JLU Record Filing Program v0.0.1a
- * Description: This program is for entering and displaying data to/from a file on JLU members.
- * Last Updated: 01/20/2011
- *23456789 - column numbers
- IDENTIFICATION DIVISION.
- PROGRAM-ID. JLU-Record-Filing.
- AUTHOR. Dick Stallman.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT Member-File ASSIGN TO "JLURecord.dat" ORGANIZATION IS SEQUENTIAL.
- SELECT Online-File ASSIGN TO "JLUOnline.dat" ORGANIZATION IS SEQUENTIAL.
- DATA DIVISION.
- FILE SECTION.
- *> Member file
- FD Member-File. *> File Descriptor
- 01 JLU-Member-Database.
- 02 Number-Of-Records PIC 999 USAGE IS BINARY. *> Number of records to enter
- 02 Current-User-Number PIC 999 USAGE IS BINARY VALUE 0. *> The current user record being entered/displayed
- 02 JLU-Member-Record.
- 03 User-Num PIC 999 USAGE IS BINARY VALUE 0. *> Unique number for the current record in the table
- 03 Second-Life-Data.
- 04 SL-UUID PIC X(36) VALUE "00000000-0000-0000-0000-000000000000".
- 04 SL-First-Name PIC X(31).
- 04 SL-Last-Name PIC X(31).
- 04 SL-Birth-Date PIC X(10) VALUE "00-00-0000".
- 04 SL-Rank PIC X(25). *> Position of power
- 04 SL-Partner.
- 05 SL-Partner-First-Name PIC X(31).
- 05 SL-Partner-Last-Name PIC X(31).
- 03 Real-Life-Data.
- 04 RL-First-Name PIC A(20).
- 04 RL-Last-Name PIC A(20).
- 04 RL-Age PIC 999.
- 04 RL-Gender PIC X.
- 04 RL-Birth-Date PIC X(10) VALUE "00-00-0000".
- 04 RL-Occupation PIC X(25).
- 04 RL-Location.
- 05 Country PIC X(20).
- 05 State-Prov PIC X(20).
- 05 ZIP-Postal PIC X(6). *> Zip or Postal code
- 05 Street-Address PIC X(20).
- *> Online File
- FD Online-File.
- 01 Online-Record. *> Record used for storing online status data
- 02 Number-Of-Entries PIC 999 USAGE IS BINARY.
- 02 Current-Entry-Number PIC 999 USAGE IS BINARY VALUE 0.
- 02 Online-First-Name PIC X(20).
- 02 Online-Last-Name PIC X(20).
- 02 Online-Entry.
- 03 Date-Logged PIC X(10) VALUE "00-00-0000".
- 03 Hours-Online PIC 999.
- * Normal fields
- WORKING-STORAGE SECTION.
- 01 Cmd PIC X. *> The variable to store command input
- 01 EOF-Flag PIC 9 VALUE 0. *> End of file flag (0 = falae, 1 = true)
- 88 NOT-EOF VALUE 0.
- 88 EOF VALUE 1.
- * -------------------------------------------------------------------
- * MAIN SUBROUTINE
- * -------------------------------------------------------------------
- PROCEDURE DIVISION.
- *> Two carriage returns before displaying anything
- DISPLAY "".
- DISPLAY "".
- PERFORM InputCmd. *> Ask for input
- *> DISPLAY UUID OF Second-Life-Data OF JLU-Member-Record(1).
- STOP RUN.
- * END OF PROGRAM
- * ------------------------------------------------------------------
- * SUB-ROUTINES
- * ------------------------------------------------------------------
- *> InputCmd will ask for a one character long input that performs different commands
- InputCmd.
- DISPLAY "Input command: " WITH NO ADVANCING.
- ACCEPT Cmd.
- IF Cmd = "i" OR "I" *> Command for entering records
- *> Select which table to enter data in
- DISPLAY "Select file: ('m' for Member file, 'o' for Online Status file): " WITH NO ADVANCING
- ACCEPT Cmd
- DISPLAY ""
- IF Cmd = "m" OR "M" *> Member Table
- PERFORM EnterMemberRecords
- ELSE
- IF Cmd = "o" OR "O" *> Online Status Table
- PERFORM EnterOnlineRecords
- END-IF
- END-IF
- ELSE
- IF Cmd = "d" OR "D" *> Command for displaying records
- PERFORM DisplayRecords
- END-IF
- IF Cmd = "x" OR "X" *> Command for exiting the program
- DISPLAY "Exiting..."
- STOP RUN
- END-IF
- IF Cmd = "h" OR "H" *> Command for help
- DISPLAY "Type in 'i' for entering data, type 'd' for displaying data."
- END-IF
- END-IF.
- EXIT.
- *> EnterRecordS will ask all data required for entering a record
- EnterMemberRecords.
- DISPLAY "Enter number of records: " WITH NO ADVANCING.
- ACCEPT Number-Of-Records OF JLU-Member-Database.
- IF Number-Of-Records OF JLU-Member-Database = 0
- DISPLAY "No records to enter, exiting..."
- EXIT
- .
- OPEN EXTEND Member-File.
- DISPLAY "Entering " Number-Of-Records " records...".
- PERFORM Number-Of-Records TIMES
- ADD 1 TO Current-User-Number
- MOVE Current-User-Number TO User-Num
- *> SECOND LIFE DATA
- *> Avatar UUID
- DISPLAY "Entry #" Current-User-Number " -- Enter Second Life Avatar UUID: " WITH NO ADVANCING
- ACCEPT SL-UUID
- *> SL First Name
- DISPLAY "Entry #" Current-User-Number " -- Enter Second Life First Name: " WITH NO ADVANCING
- ACCEPT SL-First-Name
- *> SL Last Name
- DISPLAY "Entry #" Current-User-Number " -- Enter Second Life Last Name: " WITH NO ADVANCING
- ACCEPT SL-Last-Name
- *> SL Birthdate
- DISPLAY "Entry #" Current-User-Number " -- Enter Second Life Birthdate (Format: xx-xx-xxxx): " WITH NO ADVANCING
- ACCEPT SL-Birth-Date
- *> SL Rank
- DISPLAY "Entry #" Current-User-Number " -- Enter Second Life Rank: " WITH NO ADVANCING
- ACCEPT SL-Rank
- *> SL Partner
- DISPLAY "-- Do they have a Second Life Partner? (y/n): " WITH NO ADVANCING
- ACCEPT Cmd
- IF Cmd = "y" OR "Y"
- DISPLAY "Entry #" Current-User-Number " -- Second Life Partner First Name: " WITH NO ADVANCING
- ACCEPT SL-Partner-First-Name
- DISPLAY "Entry #" Current-User-Number " -- Second Life Partner Last Name: " WITH NO ADVANCING
- ACCEPT SL-Partner-Last-Name
- END-IF
- *> REAL LIFE DATA
- *> RL First Name
- DISPLAY "Entry #" Current-User-Number " -- Enter Real Life First Name: " WITH NO ADVANCING
- ACCEPT RL-First-Name
- *> RL Last Name
- DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Last Name: " WITH NO ADVANCING
- ACCEPT RL-Last-Name
- *> RL Age
- DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Age: " WITH NO ADVANCING
- ACCEPT RL-Age
- *> RL Gender
- DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Gender: " WITH NO ADVANCING
- ACCEPT RL-Gender
- *> RL Birthdate
- DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Birthdate (Format: xx-xx-xxxx): " WITH NO ADVANCING
- ACCEPT RL-Birth-Date
- *> RL Occupation
- DISPLAY "Entry #" Current-User-Number " -- Enter Real Life Occupation: " WITH NO ADVANCING
- ACCEPT RL-Occupation
- *> RL Country
- DISPLAY "Entry #" Current-User-Number " -- Enter Country: " WITH NO ADVANCING
- ACCEPT Country
- *> RL State/Province
- DISPLAY "Entry #" Current-User-Number " -- Enter State/Province: " WITH NO ADVANCING
- ACCEPT State-Prov
- *> RL ZIP/Postal Code
- DISPLAY "Entry #" Current-User-Number " -- Enter ZIP/Postal Code: " WITH NO ADVANCING
- ACCEPT ZIP-Postal
- *> RL Street Address
- DISPLAY "Entry #" Current-User-Number " -- Enter Street Address: " WITH NO ADVANCING
- ACCEPT Street-Address
- DISPLAY ""
- DISPLAY "Record #" Current-User-Number " Complete!"
- *> Display two carriage returns before entering the next record
- DISPLAY ""
- DISPLAY ""
- PERFORM WriteToMembersFile
- END-PERFORM. *> End of loop
- CLOSE Member-File.
- EXIT.
- *> EnterOnlineRecords will ask for all of the data for the Online Records table
- EnterOnlineRecords.
- OPEN EXTEND Online-File.
- DISPLAY "Number of entries to enter: " WITH NO ADVANCING.
- ACCEPT Number-Of-Entries.
- IF Number-Of-Entries = 0
- DISPLAY ""
- DISPLAY "No entries to enter. Exiting..."
- STOP RUN
- .
- PERFORM Number-Of-Entries TIMES
- ADD 1 TO Current-Entry-Number
- DISPLAY "Entry #" Current-Entry-Number " -- Enter Second Life First Name: " WITH NO ADVANCING
- ACCEPT Online-First-Name
- DISPLAY "Entry #" Current-Entry-Number " -- Enter Second Life Last Name: " WITH NO ADVANCING
- ACCEPT Online-Last-Name
- DISPLAY "Entry #" Current-Entry-Number " -- Enter Date Logged (format xx-xx-xxxx): " WITH NO ADVANCING
- ACCEPT Date-Logged
- DISPLAY "Entry #" Current-Entry-Number " -- Enter Hours Online: " WITH NO ADVANCING
- ACCEPT Hours-Online
- DISPLAY ""
- DISPLAY "Entry #" Current-Entry-Number " Complete!"
- *> Display two carriage returns before entering the next entry
- DISPLAY ""
- DISPLAY ""
- PERFORM WriteToOnlineFile
- END-PERFORM. *> End of loop
- CLOSE Online-File.
- EXIT.
- *> DisplayRecords will display records
- DisplayRecords.
- DISPLAY "Select which file to display ('m' for member file, 'o' for online file): " WITH NO ADVANCING.
- ACCEPT Cmd.
- IF Cmd = "m"
- PERFORM ReadMemberRecord
- ELSE
- IF Cmd = "o"
- PERFORM ReadOnlineRecord
- END-IF
- .
- EXIT.
- *> WriteToMembersFile will write the record data to the JLURecords.dat file
- WriteToMembersFile.
- WRITE JLU-Member-Database.
- EXIT.
- *> WriteToOnlineFile will write the record data to the JLUOnline.dat file
- WriteToOnlineFile.
- WRITE Online-Record.
- EXIT.
- *> ReadMemberRecord will read a record from the JLUMember.dat file
- ReadMemberRecord.
- OPEN INPUT Member-File.
- PERFORM UNTIL EOF
- READ Member-File INTO JLU-Member-Database
- AT END
- MOVE 1 TO EOF-Flag
- END-READ
- DISPLAY ""
- *> Display all of the current record data
- DISPLAY "Member #" Current-User-Number " of " Number-Of-Records
- DISPLAY " - Second Life"
- DISPLAY " -- UUID: " SL-UUID
- DISPLAY " -- First Name: " SL-First-Name
- DISPLAY " -- Last Name: " SL-Last-Name
- DISPLAY " -- Birthdate: " SL-Birth-Date
- DISPLAY " -- Rank: " SL-Rank
- DISPLAY " -- Partner: " SL-Partner
- DISPLAY "------------------------------------------"
- DISPLAY " - Real Life"
- DISPLAY " -- First Name: " RL-First-Name
- DISPLAY " -- Last Name: " RL-Last-Name
- DISPLAY " -- Age: " RL-Age
- DISPLAY " -- Gender: " RL-Gender
- DISPLAY " -- Birthdate: " RL-Birth-Date
- DISPLAY " -- Occupation: " RL-Occupation
- DISPLAY " -- Location"
- DISPLAY " --- Country: " Country
- DISPLAY " --- State/Province: " State-Prov
- DISPLAY " --- ZIP/Postal Code: " ZIP-Postal
- DISPLAY " --- Steet Address: " Street-Address
- DISPLAY ""
- DISPLAY "Press enter to display the next record..."
- ACCEPT Cmd
- END-PERFORM. *> End of loop
- MOVE 0 TO EOF-Flag.
- DISPLAY "End of file reached. Exiting..."
- CLOSE Member-File
- EXIT.
- *> ReadOnlineRecord will read a record from the JLUOnline.dat file
- ReadOnlineRecord.
- OPEN INPUT Online-File.
- PERFORM UNTIL EOF
- READ Online-File INTO Online-Record
- AT END
- MOVE 1 TO EOF-Flag
- END-READ
- *> Display the entry data from the file
- DISPLAY ""
- DISPLAY "Entry #" Current-Entry-Number " of " Number-Of-Entries
- DISPLAY "- Second Life First Name: " Online-First-Name
- DISPLAY "- Second Life Last Name: " Online-Last-Name
- DISPLAY "- Date Logged: " Date-Logged
- DISPLAY "- Hours Online: " Hours-Online
- DISPLAY ""
- DISPLAY "Press enter to display the next record..."
- ACCEPT Cmd
- END-PERFORM. *> End of loop
- DISPLAY ""
- DISPLAY "End of file reached. Exiting..."
- CLOSE Online-File.
- EXIT.
- * EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement