Ja richtig nur war diese Funktion noch keiner UDF zugeordnet daher wollte ich diese Global's ersteinmal in der Funktion drinnen haben
Weil? Wie der Name schon sagt... Global... gehört in den globalen Bereich... nicht in eine Funktion. ,-)
Ich sehe nicht wo ich hier ein Filehandle nicht freigegeben habe, meines erachtens nach ist hier jedes Handle sauber nach nutzung wieder Geschlossen worden
Hier...
$h_xml = FileOpen($fSaveTo, 2)
if $h_xml = -1 Then Return False
$w_xml = FileWrite($h_xml, $sBinXML)
if $w_xml = 0 Then Return False ; <-- Genau hier... das Filehandle muss vor dem Return False freigegeben werden.
FileClose($h_xml)
So wäre es korrekt...
$h_xml = FileOpen($fSaveTo, 2)
if $h_xml = -1 Then Return False
$w_xml = FileWrite($h_xml, $sBinXML)
FileClose($h_xml)
if $w_xml = 0 Then Return False
Ich mache das gerne so... was aber übrigens wenig Sinn macht, wenn du bei FileOpen nur $FO_OVERWRITE als Flag angibst...
Local $sPath = '.\Blablabla.txt', $hFile = FileOpen($sPath, $FO_OVERWRITE)
Local $iWrite = FileWrite($hFile, 'Quakquack') + FileClose($hFile) ? FileGetSize($sPath) : -1
If $iWrite < 1 Then Return False
dann kannst du dir das FileOpen auch sparen...
Local $sPath = '.\Blablabla.txt', $iWrite = FileDelete($sPath) + FileWrite($sPath, 'Quakquack')
If $iWrite < 1 Then Return False
Zudem finde ich es nicht sehr fein, wenn Variablen nicht deklariert (Local/Global) werden... und Dim sollte eigentlich nicht mehr verwendet werden.
For $aUser In $objDomain
Wieso $aUser? Bei For in... wird kein Array geliefert.