2016-08-11 4 views
0

sagen wir haben ein externes Programm, das eine Textdatei während einer langen Berechnung schreibt. Jetzt muss ich diese Datei lesen, um den Status der Berechnung zu überprüfen (Residuenwerte, Stop bei Fehler usw.). Die Datei hat eine Größe von bis zu 1 MB. Da das Programm am Ende der Datei nur neue Informationen hinzufügt, möchte ich es nicht jedes Mal neu öffnen und neu lesen.VBA Excel Textdatei ab einer bestimmten Zeilennummer lesen

Gibt es eine Möglichkeit, die Datei von einer bestimmten Zeilennummer (wo ich das letzte Mal gestoppt habe) zu lesen?

Was passiert mit der Datei, wenn sie in Excel zum Lesen geöffnet wird und danach vom externen Programm geändert wird? EoF-Position verschiebt sich nach vorne?

+0

Sie können keine Datei öffnen, die während eines anderen Prozesses geöffnet ist. – Trimax

+0

Soweit ich weiß, schreibt das Programm die Datei oder fügt die letzten Zeilen hinzu und schließt sie. Damit ich die Datei mit dem Editor öffnen und lesen kann. – user3656916

+0

Für die Konsistenz können Sie eine Text Auxiliary Status-Datei mit der Anzahl der Linien verarbeiten, die zu dieser Zeit verarbeitet wurden. – Trimax

Antwort

0

Sie können die Anweisung Seek [#]filenumber, position verwenden, um zu einem bestimmten Byte in einer geöffneten Datei zu wechseln. Speichern Sie einfach die Position in der Datei, in der Sie mit der Funktion Seek(filenumber) gestoppt haben, oder mit LOF(filennumber), wenn Sie die EOF(filenumber) erreicht haben.

+0

Und gibt es etwas ähnliches im Textmodus? Ich öffne es im Text. – user3656916

+0

Es gibt keinen "Textmodus" für die Anweisung [Öffnen] (https://msdn.microsoft.com/en-us/library/office/gg264163.aspx) in vba. Da du keinen Code gepostet hast, kann ich dir nicht weiter helfen. –

Verwandte Themen