Hallo zusammen
Mit dieser Funktion schreibe ich Ascii-Daten in ein File. Obwohl ich beim debuggen gesehen habe, dass er das close Statment ausführt, gibt er das file nicht mehr frei. D.h. wenn ich zu einem späteren Zeitpunkt das File wieder öffne, in eine Textbox einlese und zurückschreiben will, meldet er das die Datei nicht geöffent werden könne. Ich danke im Voraus für Tipps und Infos. Die Funktionen:
Function ReadTXTFile(txt_pathfile As String)
On Error GoTo ErrorHandler
Dim int_FileNumber As Integer
Dim txt_filecontent As String
If Dir(txt_pathfile) = „“ Then
Exit Function
End If
int_FileNumber = FreeFile
Open txt_pathfile For Input As #int_FileNumber
txt_filecontent = Input(LOF(int_FileNumber), #int_FileNumber)
ReadTXTFile = txt_filecontent
ErrorHandler:
Close #iFileNumber
End Function
Public Function SaveTextToFile(FileFullPath As String, sText As String, Optional Overwrite As Boolean = False) As Boolean
'Example:
On Error GoTo ErrorHandler
Dim iFileNumber As Integer
iFileNumber = FreeFile
If Overwrite Then
Open FileFullPath For Output As #iFileNumber
Else
Open FileFullPath For Append As #iFileNumber
End If
Prinzipiell funktioniert die Routine bestens … habe es ausprobiert aber…:
schau Dir Deine ReadTXTFile() Function an. Da machst Du zum Schluss ein close() mit der Variable ‚iFileNumber‘ und die hast Du in Deiner Funktion ja gar nicht Deklariert. Die heisst nämlich ‚int_FileNumber‘ bei Dir.
Meinem VB ist das gleich aufgefallen, da ich I M M E R ‚Option Explicit‘ verwende - d.h. Variablen-Deklaration erforderlich!!!
Nachdem Du das wahrscheinlich nicht eingeschalten hast, schliesst Du eine ‚nicht geöffnete Datei‘ mit ‚iFileNumber‘, die eigentliche Datei aber nicht!!
greets from michL (vienna)
Function ReadTXTFile(txt_pathfile As String)
On Error GoTo ErrorHandler
Dim int_FileNumber As Integer
Dim txt_filecontent As String
If Dir(txt_pathfile) = „“ Then
Exit Function
End If
int_FileNumber = FreeFile
Open txt_pathfile For Input As #int_FileNumber
txt_filecontent = Input(LOF(int_FileNumber), #int_FileNumber)
ReadTXTFile = txt_filecontent