Vielleicht ist auch mein Verständnis von Fileopen usw. nicht richtig. Das Handl gibt es erst mit fileopen. Da ich in fileopen den Pfad sowieso schon festgelegt habe benutze ich den dann auch in den folgenden Befehlen read write usw.
Rein technisch gesehen wird beim lesen einer Datei immer folgendes getan:
1. Filehandle erzeugen (open)
2. Datei einlesen und interpretieren (das open handle gibt hierbei vor welche Codierung genutzt werden soll)
3. Filehandle löschen (close)
Fileread mit direkter Pfadangabe ermittelt die Codierung automatisch und erzeugt dann ein passendes fileopen handle. Ein manuelles fileopen ist hier absolut irrelevant, da fileread nichts vom bestehenden handle wissen kann wenn du es nicht explizit übergeben hast.
Fileread mit handle Angabe erzeugt kein eigenes fileopen handle mehr, weil das ja nicht mehr notwendig ist. Fileread kenn das handle bereits.
Fileclose akzeptiert im Übrigen nur filehandles und keine Pfadangaben, da das fileclose bereits in fileread/write enthalten ist wenn dort eine Pfadangabe anstelle eines handles genutzt wurde.
Ein Fileclose ist also nur dann notwendig wenn die filehandles selbst erzeugt wurden. Nutzt man fileread/write nur mit Pfadangaben kann komplett auf fileopen/close verzichtet werden. Allerdings besteht dann eben das Risiko, dass die automatische Codeirungsermittlung Unsinn anstellt, deswegen sollte man meiner Meinung nach grundsätzlich die handles selbst erzeugen und diese an fileread/write übergebn.