Hallo liebe Community,
Problembeschreibung:
Es soll ein großes Ascii File nur zum Teil eingelesen werden. Die Größe ist das Problem => Das File liegt auf einem älteren (dos) Maschinenrechner. Das File soll regelmässig (ca jede Minute, falls eine Änderung des files registriert wird) eingelesen werden, jedoch wird nur jeweils die genannte "Änderung" benötigt.
Nun möchte ich, weil die Änderung sicher immer nur "angehängt" wird (also eine weitere Zeile beschrieben => Maschinenlog), jedoch nur die letzten Zeilen auslesen.
Diese sollen mit meinen bisher gesammelten Daten verglichen werden & die Änderung in meine neue Datenbank geschrieben werden.
Hauptproblem: Ich möchte den Maschinenrechner sowenig wie möglich "belasten", weil er durchaus andere Prozesse zu regeln hat, die wichtiger sind.
Also hoffte ich nur die letzten wenigen "kb" des Files "abzurufen", statt jede Minute das gesamte File einzulesen & dann doch nur die letzten "kb"/"Zeilen" zu verwerten.
Fragestellung:
Gibt es eine Funktion die mir erlaubt eine Datei nur zum Teil "vom Ende" weg einzulesen?
Mit den mir bekannten 'Open' funktionen wird doch immer das gesamte File geöffnet?
Lösungsansätze:
Folgend wie ich mir eine Lösung vorstellen könnte
1) Nur jeweils die letzten kb "laden" (Funktion in VB unbekannt)
2) Anweisung das File "abzuschneiden" ab xxx kb und die letzten xx kb auf meinen Rechenr lokal kopieren & von dort einlesen (Idee: mit batch-datei möglich falls nicht mit vb? wie?)
Beispielcode kann ich leider nicht liefern, weil ich bis jetzt nur mit Open arbeite, was in der Praxis leider nicht sein sollte (einlesen des gesamten files).
Hier noch ein Link zu einer gebräuchlichen VB-Prozedur: sie liest aber leider eben auch das gesamte File ein, und wertet es dann "von vorne" zeilenweise aus.
LINK
Der selbe Post von mir wie hier im office-loesung.de forum: LINK
Problembeschreibung:
Es soll ein großes Ascii File nur zum Teil eingelesen werden. Die Größe ist das Problem => Das File liegt auf einem älteren (dos) Maschinenrechner. Das File soll regelmässig (ca jede Minute, falls eine Änderung des files registriert wird) eingelesen werden, jedoch wird nur jeweils die genannte "Änderung" benötigt.
Nun möchte ich, weil die Änderung sicher immer nur "angehängt" wird (also eine weitere Zeile beschrieben => Maschinenlog), jedoch nur die letzten Zeilen auslesen.
Diese sollen mit meinen bisher gesammelten Daten verglichen werden & die Änderung in meine neue Datenbank geschrieben werden.
Hauptproblem: Ich möchte den Maschinenrechner sowenig wie möglich "belasten", weil er durchaus andere Prozesse zu regeln hat, die wichtiger sind.
Also hoffte ich nur die letzten wenigen "kb" des Files "abzurufen", statt jede Minute das gesamte File einzulesen & dann doch nur die letzten "kb"/"Zeilen" zu verwerten.
Fragestellung:
Gibt es eine Funktion die mir erlaubt eine Datei nur zum Teil "vom Ende" weg einzulesen?
Mit den mir bekannten 'Open' funktionen wird doch immer das gesamte File geöffnet?
Lösungsansätze:
Folgend wie ich mir eine Lösung vorstellen könnte
1) Nur jeweils die letzten kb "laden" (Funktion in VB unbekannt)
2) Anweisung das File "abzuschneiden" ab xxx kb und die letzten xx kb auf meinen Rechenr lokal kopieren & von dort einlesen (Idee: mit batch-datei möglich falls nicht mit vb? wie?)
Beispielcode kann ich leider nicht liefern, weil ich bis jetzt nur mit Open arbeite, was in der Praxis leider nicht sein sollte (einlesen des gesamten files).
Hier noch ein Link zu einer gebräuchlichen VB-Prozedur: sie liest aber leider eben auch das gesamte File ein, und wertet es dann "von vorne" zeilenweise aus.
LINK
Der selbe Post von mir wie hier im office-loesung.de forum: LINK
Zuletzt bearbeitet: