А если у нас нет уверенности, какие коды ошибок могут возникнуть и что они означают (для винды тоже нет нормальной документации), может их вообще не проверять?
## Код:
```
UNTIL (res = ok)  OR (n = 0);
```


Можно бы и вообще от циклов избавиться, используя WinApi.GetTempFileName.