Hallo,
ich muss mich mit einem ähnlichen DOS-Format (
Adad9) befassen. Die
Daten-Datei sieht ähnlich aus; außerdem gibt es eine
DAD (Datei-Definition), in der die
Felddefinitionen enthalten sind: Feldnamen, Reihenfolge, maximale Feldlänge. Gibt es bei Dir auch solche Zusatzdateien?
Nach meiner o.g. Erfahrung kann ein Datensatz auch
mehrere Blöcke à 256 Bytes lang sein. Es fragt sich dann, wo bzw. wie die anderen Informationen zu finden sind. Ich schlage deshalb vor, auf "Nummer Sicher" zu gehen und doch
mit Feld- und Satztrenner zu arbeiten:
- Dateianfang ist klar: ein leerer Datensatz, der mit 4x FF beginnt.
- 4x 00 ist Anfang eines Datensatzes.
- 1x 00 ist Ende eines Datenfeldes.
Daraus entnehme ich:
- 1. Adressennummer
- 2, 3. In den Beispielen folgen zwei Felder ohne Inhalt.
- 4. Anrede
- 5. Name
- 6. Namenszusatz
- 7. Straße
- 8. unbekanntes Feld
- 9. PLZ + Ort
- 10, 11. zwei unbekannte Felder
- 12, 13. Telefon, Telefax
In dieser Weise musst Du die Datei möglichst insgesamt ansehen und alle möglichen Felder interpretieren. Dann kannst Du bearbeiten:
- Erzeuge eine Struktur (Record, Klasse o.ä.) mit allen tatsächlich möglichen Feldern (ähnlich dem Vorschlag von Hansa). Benutze am besten String (variable Länge gemäß Delphi) für Textfelder, damit Du keine Probleme mit der max. Feldlänge bekommst.
- Lies die Datei als Stream ein.
- Gehe an Position 256.
- Bearbeite danach jeden Datensatz; prüfe den Satzanfang.
- Bearbeite danach alle Felder: Merke Dir die Position des Feldanfangs, gehe bis zum nächsten Feldtrenner und kopiere den Feldinhalt usw. - bei Bedarf mit StrToIntDef usw. Berücksichtige dabei, dass ein Feldinhalt nur aus dem Feldtrenner bestehen kann.
Ich bin gerne bereit, Dir bei der weiteren Analyse der Datei zu helfen. Jürgen