What is a Port?

Instead of:

err: try [
    file: open %bigdata.dat
    da-head: read/part file 4000
    da-body: read/seek/part file 12000 10000
    da-tail: read/seek/part file 56000 4000
]
close file

if error? err [
    print ["Port error:" form err]
]

there should be:

err: try [
    file: open %bigdata.dat
    da-head: read/part file 4000
    da-body: read/seek/part file 12000 10000
    da-tail: read/seek/part file 56000 4000
    close file
]

if error? err [
    print ["Port error:" form err]
]

Because is something is going to fail in the try code, than it is the file opening. If it fails, the file would be none and one would receive uncatched error, because close does not handle none value.

Or even better:

err: try [
    file: open %bigdata.dat
    da-head: read/part file 4000
    da-body: read/seek/part file 12000 10000
    da-tail: read/seek/part file 56000 4000
]
if file [close file]

if error? err [
    print ["Port error:" form err]
]

Which will close the file in case, when fails the reading in the try block above.

1 Like