File input/output: Difference between revisions
Content added Content deleted
(Added solution for Action!) |
|||
Line 213: | Line 213: | ||
(read-from-file in (expt 2 40) state) |
(read-from-file in (expt 2 40) state) |
||
(write-to-file out contents state)))</lang> |
(write-to-file out contents state)))</lang> |
||
=={{header|Action!}}== |
|||
The attached result has been obtained under DOS 2.5. |
|||
{{libheader|Action! Tool Kit}} |
|||
<lang Action!>INCLUDE "D2:IO.ACT" ;from the Action! Tool Kit |
|||
PROC Dir(CHAR ARRAY filter) |
|||
BYTE dev=[1] |
|||
CHAR ARRAY line(255) |
|||
Close(dev) |
|||
Open(dev,filter,6) |
|||
DO |
|||
InputSD(dev,line) |
|||
PrintE(line) |
|||
IF line(0)=0 THEN |
|||
EXIT |
|||
FI |
|||
OD |
|||
Close(dev) |
|||
RETURN |
|||
PROC CopyFile(CHAR ARRAY src,dst) |
|||
DEFINE BUF_LEN="1000" |
|||
BYTE in=[1], out=[2] |
|||
BYTE ARRAY buff(BUF_LEN) |
|||
CARD len |
|||
Close(in) |
|||
Close(out) |
|||
Open(in,src,4) |
|||
Open(out,dst,8) |
|||
DO |
|||
len=Bget(in,buff,BUF_LEN) |
|||
IF len>0 THEN |
|||
Bput(out,buff,len) |
|||
FI |
|||
UNTIL len#BUF_LEN |
|||
OD |
|||
Close(in) |
|||
Close(out) |
|||
RETURN |
|||
PROC Main() |
|||
CHAR ARRAY filter="D:*.*", |
|||
src="D:INPUT.TXT", dst="D:OUTPUT.TXT" |
|||
Put(125) PutE() ;clear screen |
|||
PrintF("Dir ""%S""%E",filter) |
|||
Dir(filter) |
|||
PrintF("Copy ""%S"" to ""%S""%E%E",src,dst) |
|||
CopyFile(src,dst) |
|||
PrintF("Dir ""%S""%E",filter) |
|||
Dir(filter) |
|||
RETURN</lang> |
|||
{{out}} |
|||
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/File_input_output.png Screenshot from Atari 8-bit computer] |
|||
<pre> |
|||
Dir "D:*.*" |
|||
DOS SYS 037 |
|||
DUP SYS 042 |
|||
INPUT TXT 011 |
|||
617 FREE SECTORS |
|||
Copy "D:INPUT.TXT" to "D:OUTPUT.TXT" |
|||
Dir "D:*.*" |
|||
DOS SYS 037 |
|||
DUP SYS 042 |
|||
INPUT TXT 011 |
|||
OUTPUT TXT 011 |
|||
606 FREE SECTORS |
|||
</pre> |
|||
=={{header|Ada}}== |
=={{header|Ada}}== |