read/writestr are read and writes to and from strings. Some other Pascal dialects have them, and as it seemed useful, they were enabled in other modes too. I assume errorhandling is the same with {$I-} and checking IORESULT.
Strtoint is the delphi way, and can throw exceptions, better use strtointdef or trystrtoint.