Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
FIELD Statement Programming Example
◄Example► ◄Contents► ◄Index► ◄Back►
──────────────────────────────────────────────────────────────────────────────
'This example uses the FIELD statement to define a random-access file buffer.
'In the first FIELD statement, the 67-byte buffer is broken up into five
'separate variables for name, address, city, state, and zip code. In the
'second FIELD statement, the same buffer is assigned entirely to one
'variable, Plist$. The program then checks to see if Zip$, which contains
'the zip code, falls within a certain range; if it does, the complete
'address string is printed.
TYPE Buffer
FuName AS STRING * 25
Addr AS STRING * 25
City AS STRING * 10
State AS STRING * 2
Zip AS STRING * 5
END TYPE
DIM RecBuffer AS Buffer
'Note: This part of the program creates a random-access file for use by the
'second part of the program, which demonstrates the FIELD statement.
OPEN "MAILLIST.DAT" FOR RANDOM AS #1 LEN = LEN(RecBuffer)
CLS
RESTORE
READ FuName$, Addr$, City$, State$, Zip$
I = 0
DO WHILE UCASE$(FuName$) <> "END"
I = I + 1
RecBuffer.FuName = FuName$
RecBuffer.Addr = Addr$
RecBuffer.City = City$
RecBuffer.State = State$
RecBuffer.Zip = Zip$
PUT #1, I, RecBuffer
READ FuName$, Addr$, City$, State$, Zip$
IF FuName$ = "END" THEN EXIT DO
LOOP
CLOSE #1
DATA "Bob Hartzell","1200 Liberty St.","Bow","WA","98232"
DATA "Alice Provan","123 B St.","Bellevue","WA","98005"
DATA "Alex Landow","14900 123rd","Bothell","WA","98011"
DATA "Walt Riley","33 Minnow Lake Road","Lyman","WA","98263"
DATA "Georgette Gump","400 15th W.","Bellevue","WA","98007"
DATA "END",0,0,0,0,0
'This part of the program demonstrates use of the FIELD statement.
'Define field and record lengths with constants.
CONST FU = 25, AD = 25, CT = 10, ST = 2, ZP = 5
CONST RECLEN = FU + AD + CT + ST + ZP
OPEN "MAILLIST.DAT" FOR RANDOM AS #1 LEN = RECLEN
FIELD #1, FU AS FuName$, AD AS Addr$, CT AS City$, ST AS State$, ZP AS Zip$
FIELD #1, RECLEN AS Plist$
GET #1, 1
'Read the file, looking for zip codes in the range 98000 to 98015.
DO WHILE NOT EOF(1)
Zcheck$ = Zip$
IF (Zcheck$ >= "98000" AND Zcheck$ <= "98015") THEN
Info$ = Plist$
PRINT LEFT$(Info$, 25)
PRINT MID$(Info$, 26, 25)
PRINT RIGHT$(Info$, 17)
PRINT
END IF
GET #1
LOOP
CLOSE #1