Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abfrage, ob Schreibvorgang in Textdatei beendet

Abfrage, ob Schreibvorgang in Textdatei beendet
09.05.2018 13:40:42
Martin
Hallo,
ich importiere per QueryTables Daten aus einer sehr großen Textdatei nach Excel. Im Prinzip klappt auch alles sehr gut, außer dass Excel die Fremdsoftware (welche die Textdatei erzeugt) zum Absturz bringt, wenn die Textdatei noch nicht fertiggestellt ist.
Meine Frage: Wie kann ich mit Excel abfragen, ob der Schreibvorgang der Textdatei beendet ist? Ich habe mit FileDateTime und FileLen in der "Do Loop Until"-Anweisung bereits probiert abzuwarten, bis "Now" größer ist als das FileDateTime der Textdatei bzw. das FileLen unverändert bleibt. Aber leider verlief beides ohne Erfolg. Gibt es eine Möglichkeit der Direktabfrage, ob der Schreibvorgang einer Textdatei bereits abgeschlossen ist?
Viele Grüße
Martin

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage, ob Schreibvorgang in Textdatei beendet
09.05.2018 14:30:46
ChrisL
Hi Martin
Gibt es eine Möglichkeit der Direktabfrage, ob der Schreibvorgang einer Textdatei bereits abgeschlossen ist? Ich glaube nicht.
Insbesondere, wenn es sich bei der Fremdanwendung um eine "Black-Box" handelt, auf die du keinen Einfluss hast.
Allerdings verstehe ich nicht, wieso der Ansatz mit FileLen() nicht funktioniert. Wenn die Dateigrösse 5 sek unverändert bleibt, kommt die "fertig" Meldung:
Public lngFileSize As Long
Sub CheckFileSize()
If lngFileSize  FileLen("C:\Pfad\Datei.txt") Then
Application.OnTime Now + TimeValue("00:00:05"), "CheckFileSize"
lngFileSize = FileLen(ThisWorkbook.Path & "\Test.txt")
Else
MsgBox "fertig"
End If
End Sub
cu
Chris
Anzeige
Problem gelöst
09.05.2018 15:07:31
Martin
Hallo Chris,
ich danke dir für deine Antwort. Mir war eine Lösung wichtig, bei der unmittelbar nach Fertigstellung der geschriebenen Textdatei der Datenimport erfolgt. Meine alter Ansatz sah so aus und hat leider nicht funktioniert:
    Dim lngSize As Long, dteTime As Date
Do
lngSize = FileLen(str_txtFile)
dteTime = FileDateTime(str_txtFile)
Sleep (50)
Loop Until Now() >= FileDateTime(str_txtFile) And FileLen(str_txtFile) = lngSize
Nun habe ich aber doch eine Lösung gefunden, nachdem ich bereits den ganzen Vormittag vergebens gesucht hatte:
    Dim lngFileSize As Long, intFile As Integer
intFile = FreeFile
Open str_txtFile For Input Shared As #intFile
Do
lngFileSize = LOF(intFile)
Sleep (50)
Loop Until LOF(intFile) = lngFileSize
Close #intFile
Ich danke dir, dass du dich mit meinem Problem befasst und nach einer Lösung gesucht hast.
Viele Grüße
Martin
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige