![]() |
FileStream und Record
Hi Leute,
ich hab mich mal nen bissl hier umgesehen und nach einer Lösung für mein Problem gesucht. Da ich nichts gefunden habe, frag ich euch mal direkt. Ich habe eine Datenstruktur aus Zahlen(byte) und Strings und die soll in einen FileStream. Zur Verdeutlichung mal mein Record:
Delphi-Quellcode:
Der Stream wird folgendermaßen gespeichert:
type fach = Record
Name:string[20]; elf1:byte; elf1_einbringen:boolean; //... end; Punkte = Record Name:String[40]; GebDatum:String[10]; GebOrt:String[30]; Wohnort:String[30]; SK:String[5]; SKL:string[40]; Grundfach:array[1..11] of fach; Seminarfach:Semi; end; var Leistungen:Punkte;
Delphi-Quellcode:
Das Problem: Im Array "Grundfach" wird von der Variable "Name" nur der allererste Wert gespeichert. Alle folgenden bleiben leer!
procedure TForm1.Speichernunter1Click(Sender: TObject);
var Datei:TFileStream; begin if Speichern.Execute then begin try datei:=TFileStream.Create(Pchar(speichern.FileName),fmCreate); Datei.WriteBuffer(Leistungen,Sizeof(Leistungen)); finally freeandnil(Datei); end; end; end; Ich hoffe ihr habt einigermaßen verstanden, was ich vor habe und könnt mir weiter helfen. :-D Grüße Bf |
Re: FileStream und Record
Ganz ernsthaft: vielleicht steht in den anderen Variablen gar nichts drin...
|
Re: FileStream und Record
Hey Sorry!!..Aber ganz blöd bin ich ja auch nicht! :freak:
Ich hab natürlich vorher kontrilliert, ob die Werte übernommen werden. |
Re: FileStream und Record
Ich frage nur, weil ich deinen Code in einem Minimal-Programm verwendet habe und bei mir funktioniert es erwartungsgemäß. Auch sorry.
|
Re: FileStream und Record
Du musst jeden fasch-Record expilzit in den Strema schreiben. D.h. innerhalb einer Schleife.
P.S. um dieses Problem fast automatisch zulösen (und OOP gemäß ohne Records) gibt es in der Codelib die ![]() |
Re: FileStream und Record
Zitat:
|
Re: FileStream und Record
Zitat:
|
Re: FileStream und Record
Hmm..
Das wollte ich eigentlich umgehen. Aber wenn es nicht anders geht. Muss ich das beim auslesen dann auch tun?!? Thx |
Re: FileStream und Record
"Du musst" klingt so, als wäre der Versuch mit WriteBuffer die Gesamtstruktur zu schreiben von vorne herein zum Scheitern verurteilt. Das stimmt nicht, aber es gibt sicher professionellere Lösungen.
Zitat:
|
Re: FileStream und Record
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
alles was ich in diesem Thread bislang geschrieben habe hat ab jetzt keine Gültigkeit mehr. Ich habe mit einem kleinen Testprogramm versucht Dein Problem nachzuvollziehen. Es muss so funktionieren, wie Du Dir das vorgestellt hast. D.h. Dein Fehler muss an einer anderen Stelle liegen. Entschulidge bitte mein fehlerhaften Aussagen. Das muss wohl an den Records liegen. Die Dinger verwende ich schon seit 3 oder 4 Jahren nicht mehr. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz