File input/output: Difference between revisions

Added solution for Action!
(Added solution for Action!)
Line 213:
(read-from-file in (expt 2 40) state)
(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}}==
Anonymous user