Fixed length records: Difference between revisions

Content added Content deleted
(Added statements to close the files.)
(Moved processing into a procedure.)
Line 972: Line 972:
<lang Nim>import algorithm
<lang Nim>import algorithm


proc reverse(infile, outfile: string) =
let input = "infile.dat".open(fmRead)
let output = "outfile.dat".open(fmWrite)
var buffer: array[80, byte]


while not input.endOfFile:
let input = infile.open(fmRead)
let countRead = input.readBytes(buffer, 0, 80)
defer: input.close()
let output = outfile.open(fmWrite)
if countRead < 80:
defer: output.close()
raise newException(IOError, "truncated data when reading")
buffer.reverse()
let countWrite = output.writeBytes(buffer, 0, 80)
if countWrite < 80:
raise newException(IOError, "truncated data when writing")


var buffer: array[80, byte]
input.close()
while not input.endOfFile:
output.close()</lang>
let countRead = input.readBytes(buffer, 0, 80)
if countRead < 80:
raise newException(IOError, "truncated data when reading")
buffer.reverse()
let countWrite = output.writeBytes(buffer, 0, 80)
if countWrite < 80:
raise newException(IOError, "truncated data when writing")

reverse("infile.dat", "outfile.dat")</lang>


{{out}}
{{out}}