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. |