Moin,moin,
also ich habe .dat Dateien, die immer folgendermaßen aufgebaut sind:
01002774640000063022F6070326070003
0100277464000005EE9185070326070102
0100277464000005EE9185070326153200
01002774640000063022F6070327051733
0100277464000005EE9185070329153212
01002774640000063022F6070330051942
01002664570000070CEFD7070326060208
0100266457000005EED94D070327164049
01002664570000070CEFD7070327164057
Es handelt sich hierbei um Buchungen aus unserer Zeiterfassung. Jede Zeile ist eine Buchung bestehend aus Lesestift, Buttonnummer, Datum und Uhrzeit. Diese Buchungen sollen in die Datenbank eingelesen werden, damit dort die Zuweisung der Mitarbeiter/innen anhand der Lesestifte erfolgt.
Hintergund ist, dass oft auf Buttons gestochen wird, die in der Zeiterfassung noch nicht angelegt sind. Dann beginnt die mühevolle Suche in diesen Dateien (für jeden Monat eine eigene .dat).
Es ist es so, dass mehrere 10000 Zeilen in diesen Dateien enthalten sein können. Bisher bin ich so verfahren ,dass ich alle bisher eingelesenen einer Datei Buchungen gelöscht und die Dateien komplett neu eingelesen habe. Das dauert natürlich seine Zeit. Wenn ich die Datei heute auslese, können morgen schon wieder 1000 neue Buchungen drin sein. Ich will mit seek ermitteln, wo ich zuletzt aufgehört habe und da entsprechend anzufangen auszulesen. Klappt auch ganz gut.
Aus der Hilfe:
For a binary or sequential file, Seek returns the current byte position within the file.
Ist doch genau das, was ich will, oder? Die einzelnen Zeilen enthalten 34 Zeichen, auswerfen tut er mir bei seek 36 pro Zeile. Also werden die Zahlen an sich mit jeweils 1 byte, und die Enter mit 2 byte gerechnet.
Glauben tue ich das schon, deswegen wollte ich ja zu Beginn wissen ob die "+2" mit den Entern (Returns) zusammenhängen. Und wie gesagt, es handelt sich um Dateien aus unserer Zeiterfassung, die immer nach obigen Chema aufgebaut sind. Da brauche ich mir um länderbezogene Codierungen noch keine Gedanken zu machen.
Gibt es denn etwas anderes für das was ich machen will, außer seek?Bin für alles offen
Wie gesagt, bin erst gestern durch Zufall darauf gestoßen.
warum eine nicht-initialisierte Variable wie "Dateistream" als FileNum übel in die Hose gehen kann
Wird sie durch = freefile() nicht initialisiert?
Trotzdem mal bisheriger Hintergrund-Agent im Anhang.
Gruß
Demian