AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FileStream und Record

Ein Thema von blackfoxx · begonnen am 14. Apr 2005 · letzter Beitrag vom 14. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
blackfoxx

Registriert seit: 25. Feb 2005
Ort: Halle
43 Beiträge
 
Delphi 2005 Personal
 
#1

FileStream und Record

  Alt 14. Apr 2005, 15:16
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:
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;
Der Stream wird folgendermaßen gespeichert:
Delphi-Quellcode:
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;
Das Problem: Im Array "Grundfach" wird von der Variable "Name" nur der allererste Wert gespeichert. Alle folgenden bleiben leer!

Ich hoffe ihr habt einigermaßen verstanden, was ich vor habe und könnt mir weiter helfen.

Grüße Bf
Jonas Schwartze
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: FileStream und Record

  Alt 14. Apr 2005, 15:45
Ganz ernsthaft: vielleicht steht in den anderen Variablen gar nichts drin...
  Mit Zitat antworten Zitat
blackfoxx

Registriert seit: 25. Feb 2005
Ort: Halle
43 Beiträge
 
Delphi 2005 Personal
 
#3

Re: FileStream und Record

  Alt 14. Apr 2005, 16:44
Hey Sorry!!..Aber ganz blöd bin ich ja auch nicht!
Ich hab natürlich vorher kontrilliert, ob die Werte übernommen werden.
Jonas Schwartze
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: FileStream und Record

  Alt 14. Apr 2005, 16:48
Ich frage nur, weil ich deinen Code in einem Minimal-Programm verwendet habe und bei mir funktioniert es erwartungsgemäß. Auch sorry.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#5

Re: FileStream und Record

  Alt 14. Apr 2005, 16:48
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 dpCollection unit
I come from outer space to save the human race
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: FileStream und Record

  Alt 14. Apr 2005, 16:52
Zitat von Jens Schumann:
Du musst ...
Sollte das nicht besser "Du kannst ..." heißen?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#7

Re: FileStream und Record

  Alt 14. Apr 2005, 16:54
Zitat von marabu:
Zitat von Jens Schumann:
Du musst ...
Sollte das nicht besser "Du kannst ..." heißen?
ja - ich hätte auch schreiben können Du könntest, Du solltest, Du müsstes oder wenn es unbedingt sein muss könntest Du
I come from outer space to save the human race
  Mit Zitat antworten Zitat
blackfoxx

Registriert seit: 25. Feb 2005
Ort: Halle
43 Beiträge
 
Delphi 2005 Personal
 
#8

Re: FileStream und Record

  Alt 14. Apr 2005, 16:59
Hmm..
Das wollte ich eigentlich umgehen. Aber wenn es nicht anders geht. Muss ich das beim auslesen dann auch tun?!?
Thx
Jonas Schwartze
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: FileStream und Record

  Alt 14. Apr 2005, 17:04
"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 von marabu:
... bei mir funktioniert es erwartungsgemäß.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#10

Re: FileStream und Record

  Alt 14. Apr 2005, 17:14
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.
Angehängte Dateien
Dateityp: zip zip_129.zip (202,0 KB, 27x aufgerufen)
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz