Add OPEN/CLOSE with both modern (OPEN "f" FOR OUTPUT AS #n) and compact (OPEN "O",#n,"f") syntaxes. PRINT#, WRITE#, INPUT#, LINE INPUT# for sequential file access. EOF() now returns real file status with peek-ahead. LOC/LOF return approximate values. PRINT USING with numeric (#, ., +, -, $$, **, ^^^^, comma grouping) and string (!, &, \ \) format specifiers. Shared by PRINT USING and PRINT# USING. SAVE (ASCII), LOAD (with ,R auto-run), and MERGE for program persistence. MID$ assignment (MID$(var$, start [,len]) = expr) for in-place string modification. Works with both scalar variables and array elements. Graphics stubs for SCREEN, PSET, PRESET, LINE, CIRCLE, DRAW, PAINT, VIEW, WINDOW, PALETTE - parse and discard arguments so graphics-heavy programs don't crash. SYSTEM and NEW/CLEAR now close all open files. Version bumped to 0.3.0. 22 tests pass (16 existing + 6 new).
12 lines
273 B
QBasic
12 lines
273 B
QBasic
10 REM WRITE#/INPUT# and EOF test
|
|
20 OPEN "/tmp/gwbasic_wi_test.txt" FOR OUTPUT AS #1
|
|
30 WRITE #1, "Alice", 25
|
|
40 WRITE #1, "Bob", 30
|
|
50 CLOSE #1
|
|
60 OPEN "/tmp/gwbasic_wi_test.txt" FOR INPUT AS #1
|
|
70 WHILE NOT EOF(1)
|
|
80 INPUT #1, N$, A
|
|
90 PRINT N$; A
|
|
100 WEND
|
|
110 CLOSE #1
|