Phase 3: file I/O, PRINT USING, SAVE/LOAD, MID$ assignment, graphics stubs
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).
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
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
|
||||
Reference in New Issue
Block a user