Hai!
Ne Frage, ob ich ein grundsätzliches Denkproblem habe:
Im Prog werden Formulardaten mittels TWriter in einen MemoryStream geschrieben. Alle String-Felder werden ggfs. auf eine fixe Länge
gebracht.
Somit entsteht am Ende eine feste Struktur (Memorystream.Size = 4933).
Diese wird dann in einem Filestream gespeichert. Bei 10 Einträgen stehen also 10 Datenstrukturen im Filestream.
Vor dem Einfügen wird Pos auf (0,soFromEnd) gesetzt.
Beim Update erolgt das positionieren mittels Seek(SNr * Size,soFromBeginning).
Dem Grunde nach erfolgt also die Abbildung einer typisierten Datei.
Aus irgendeinem Grund funktioniert das ne ganze Zeit ganz gut und dann ist der Stream auf einmal zerschossen.
Beim Lesen erfolgt die Meldung "ungültiger Typ" - das Lesen erfolgt analog dem Schreiben bezogen aus Positionierung, dann werden die Teile mittels TReader gelesen.
Ist diese Vorgehensweise grundsätzlich daneben?
Kann sich die Size des Streams trotz fester Feldlängen ändern? (Dies würde das ganze erklären).
Bin für jeden Vorschlag offen.
Danke und viele Grüße
Der Basil