148 lines
5.3 KiB
Plaintext
148 lines
5.3 KiB
Plaintext
|
=======================================
= =
= HP 2000 PART 4 (FILES) =
= =
= CAPTURED BY =
= =
= BLITZIOD ?? & GALACTUS ** =
= =
= of =
= =
= THE ELITE HACKERS GUILD =
= =
=======================================
|
|||
|
|
|||
|
|
|||
|
* FILES *
|
|||
|
|
|||
|
|
|||
|
|
|||
|
BASIC FORMATTED FILES ARE ESSENTIALLY THE SAME AS
|
|||
|
DATA STATEMENTS, THEY BOTH HAVE POINTERS THAT MOVE ALONG THE DATA
|
|||
|
HERE IS AN EXAMPLE OF A PROGRAM USING THE DATA STATEMENT :
|
|||
|
|
|||
|
10 READ X
|
|||
|
20 PRINT X
|
|||
|
30 DATA 1,2,3,4,5,6,7,8,9,10
|
|||
|
40 GOTO 10
|
|||
|
50 END
|
|||
|
|
|||
|
|
|||
|
WHEN THIS PROGRAM IS RUN THE DATA IS READ IN LINE 10
|
|||
|
FROM THE DATA STATEMENT IN LINE 30.
|
|||
|
AFTER THE '1' IS READ FROM THE DATA STATEMENT THE POINTER IS
|
|||
|
MOVED TO THE '2' AND SO ON. WHEN THE FINAL PIECE OF DATA IS READ
|
|||
|
AND THE POINTER IS MOVED BEYOND THE '10' THEN YOU WILL GET THE
|
|||
|
ERROR MESSAGE: OUT OF DATA IN LINE 10
|
|||
|
THIS IS ESSENTIALLY THE WAY FILES WORK.
|
|||
|
BUT FILES HAVE MANY MORE CAPABILITIES THAN DO DATA STATEMENTS
|
|||
|
|
|||
|
|
|||
|
LET'S LEARN HOW TO CREATE A FILE, OK?
|
|||
|
|
|||
|
|
|||
|
TO CREATE A FILE ALL ONE MUST DO IS TYPE IN CRE- THEN THE
|
|||
|
NAME OF THE FILE, AND HOW LONG IT MUST BE. FOR EXAMPLE IF I WANTED
|
|||
|
TO CREATE A FILE NAMED 'DAVID' THAT IS 5 RECORDS LONG I WOULD TYPE IN
|
|||
|
CRE-DAVID,5
|
|||
|
THEN HIT 'RETURN'
|
|||
|
|
|||
|
WHENEVER YOU CREATE A FILE THE COMPUTER RESERVES THE NUMBER OF
|
|||
|
RECORDS YOU CREATED IT ON THE DISC. SO IF YOU CREATE A FILE THAT
|
|||
|
IS 50 RECORDS LONG, YOU HAVE USED 50 RECORDS OF DISC SPACE, WHETHER
|
|||
|
YOU USE THE WHOLE FILE OR NOT.
|
|||
|
|
|||
|
NOW I WILL SHOW YOU A PROGRAM THAT WILL PRINT ON YOUR FILE.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
5 DIM A$(20), B$(20)
|
|||
|
10 FILES FIL1
|
|||
|
20 PRINT 'NAME';
|
|||
|
30 INPUT A$
|
|||
|
40 IF END#1 THEN 85
|
|||
|
50 READ#1,1
|
|||
|
60 READ#1;B$
|
|||
|
70 GOTO 60
|
|||
|
85 IF END#1 THEN 110
|
|||
|
90 PRINT#1;A$,END
|
|||
|
100 STOP
|
|||
|
110 PRINT'FILE FULL'
|
|||
|
120 END
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
BY THIS TIME YOU ARE WONDERING WHAT THAT MESS IS, RIGHT ?
|
|||
|
HERE IS AN EXPLANATION
|
|||
|
|
|||
|
|
|||
|
STATEMENT # MEANING
|
|||
|
10 OPENS THE FILE THAT IS TO BE USED, IN THIS CASE THE NAME OF
|
|||
|
THE FILE IS 'FIL1'. THIS STATEMENT IS TELLING THE COMPUTER
|
|||
|
WHAT FILE WE WANT TO USE FOR THIS PROGRAM
|
|||
|
FIL1 IS REFERRED TO AS #1 AS SEEN IN LINES 40,50 & 60
|
|||
|
IF MORE THAN ONE FILE WAS USED LINE 10 WOULD LOOK LIKE
|
|||
|
THIS FILES FIL1,FIL2. THEN FIL2 WOULD BE REFERRED
|
|||
|
TO AS #2. UP TO 16 FILES CAN BE USED IN ONE PROGRAM
|
|||
|
30 INPUT NEW NAME TO BE PRINTED ON FILE.
|
|||
|
40 THIS STATEMENT 'IF END' SETS UP THE IF END
|
|||
|
CONDITION. THIS MEANS THAT WHEN THE FILE PIONTER GETS
|
|||
|
TO THE END OF DATA IN THAT FILE THEN GOTO 85
|
|||
|
50 THIS MEANS TO READ THE FIRST RECORD AND THE
|
|||
|
FIRST ITEM OF THE FILE, IN OTHER WORDS THIS
|
|||
|
THIS SETS THE FILE POINTER BACK TO THE BEGINNING OF THE
|
|||
|
DATA.
|
|||
|
BY USING THIS STATEMENT YOU CAN BE ASSURED OF STARTING
|
|||
|
AT THE BEGINNING OF THE DATA IN THAT FILE
|
|||
|
60 READS DATA FROM FILE#1, SOMEWHAT LIKE THE 'READ' USED
|
|||
|
WITH DATA STATEMENTS.
|
|||
|
85 SETS UP ANOTHER IF END CONDITION TO CHECK FOR THE END OF
|
|||
|
FILE. IF ANOTHER EOF MARKER IS ECOUNTERED THEN GOTO
|
|||
|
LINE 110.
|
|||
|
END-OF-FILE MARKERS ARE DEFINED MORE PRECISELY LATER.
|
|||
|
90 THIS STATEMENT PRINTS THE NEW NAME (A$) ON THE FILE,
|
|||
|
THEN PRINTS AN END OF FILE MARKER ON THE FILE.
|
|||
|
THE END OF FILE MARKER ENABLES THE COMPUTER TO TELL
|
|||
|
THROUGH THE READ STATEMENT (LINE 60) WHEN THE END OF
|
|||
|
DATA IS REACHED
|
|||
|
|
|||
|
|
|||
|
|
|||
|
HERE IS A FLOW CHART OF THAT PROGRAM:
|
|||
|
|
|||
|
1. INPUT NEW NAME -----------2. READ DATA FROM FILE
|
|||
|
|
|||
|
3. IF END OF FILE #1 THEN 4 -----GO BACK TO 2.
|
|||
|
!
|
|||
|
4. IF END#1 THEN 7
|
|||
|
!
|
|||
|
5. TRY TO PRINT NEW NAME ON FILE, IF SUCCESSFUL (MEANING FILE IS
|
|||
|
NOT FULL) THEN 6. IF UNSECCESSFUL (MEANING FILE IS FULL) THEN 7.
|
|||
|
! !
|
|||
|
!
|
|||
|
! 7. PRINT'FILE FULL'
|
|||
|
6. STOP !
|
|||
|
8. END
|
|||
|
|
|||
|
|
|||
|
OK, LET'S MOVE ON TO GET A LISTING OF YOUR FILE
|
|||
|
|
|||
|
05 DIM A$(20)
|
|||
|
10 FILES FIL1
|
|||
|
20 IF END#1 THEN 70
|
|||
|
30 READ#1,1
|
|||
|
40 READ#1;A$
|
|||
|
50 PRINT A$
|
|||
|
60 GOTO 40
|
|||
|
70 END
|
|||
|
|
|||
|
|
|||
|
THIS IS A RATHER SIMPLE PROGRAM, IT GOES LIKE THIS;
|
|||
|
YOU SET UP THE IF END CONDITION, THEN READ STARTING AT THE
|
|||
|
BEGINNING OF THE FILE. READ THROUGH THE FILE AND PRINT
|
|||
|
EACH SEPARATE PIECE OF DATA (LINES 40 & 50). WHEN ALL THE
|
|||
|
DATA HAS BEEN READ THROUGH, IT FALLS THROUGH TO LINE 70, BY
|
|||
|
THE CONDITION SET UP IN LINE #20 AND AT THIS POINT
|
|||
|
EXECUTION IS TERMINATED.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
* END OF FILE DISCUSSION *
|
|||
|
|
|||
|
|
|||
|
|
|||
|
HERE IS SOME ELLABORATION ON WHAT YOU HAVE LEARNED SO FAR
|
|||
|
ABOUT BASIC FORMATTED FILES.
|
|||
|
|
|||
|
THE EOF MARKER IS WHAT THE IF END CONDITION IS USED
|
|||
|
WITH. THE EOF MARKER DESIGNATES THAT THE END OF DATA HAS BEEN REACHED.
|
|||
|
AS MORE DATA IS PUT INTO A FILE. |