AGB  ·  Datenschutz  ·  Impressum  







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

File of record speichern

Ein Thema von TH3LL · begonnen am 24. Okt 2006 · letzter Beitrag vom 28. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
TH3LL

Registriert seit: 25. Jan 2006
22 Beiträge
 
Delphi 6 Enterprise
 
#1

File of record speichern

  Alt 24. Okt 2006, 19:29
Hi

Ich erstelle in Delphi eine file of record, um Messdaten zu speichern. Die datei soll während des Programms erstellt werden.
Sieht wiefolgt aus:
Delphi-Quellcode:
  type TMesswert=record
    Amp1,Amp2:real;
    Vol1,Vol2:real;
  end;

var AlleMesswerte:array of TMesswert;
//....

procedure TForm1.Button4Click(Sender: TObject);
var f:file of TMesswert;
    x:integer;
begin
   If savedialog1.Execute then
        Begin
           For x:= 0 to High(AlleMesswerte) do Write(f,AlleMesswerte[x]);
           //Hier soll f nun in Savedialog1.Filename gespeichert werden
        end;

end;
Nun.. Ich habe lange gesucht, aber keine möglichkeit gefunden meine "File of TMesswert" zu speichern^^ Ist in der Delphi-Hilfe zu den Standard I/O-Befehlen von files nicht vorhanden.
Muss ich die Datei vielleicht vorher erstellen? Wenn es den Befehl tatsächlich nicht gibt, schätze ich mal ich muss der file f einen bestimmten Pfad oder eine datei zuweisen, aber wie tue ich dies?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: File of record speichern

  Alt 24. Okt 2006, 19:36
AssignFile, Reset, Write
Markus Kinzler
  Mit Zitat antworten Zitat
HalloDu

Registriert seit: 24. Apr 2006
Ort: Oelde
267 Beiträge
 
Delphi 2009 Professional
 
#3

Re: File of record speichern

  Alt 24. Okt 2006, 19:41
Es müsste eigentlcih wie mit einem ganz normalen Textfile gehen also erst
AssignFile(F, SaveDialog1.FileName) um der Dateivariable einen Pfad zu geben, dann
Rewrite(F, SaveDialog1.FileName) um eine neue Datei zu erstellen oder eine bestehende zu leeren, dann
Write(F, AlleMesswerte[x]) // In der For-Schleife um die einzellnen Records in die Datei zu schreiben, und am Ende nicht das
CloseFile(F) vergessen um die Datei abzuschließen.

Hab mal gelesen, dass das so funktioniert. Und hoffe das es richtig ist, hoffe es hilft ihr

Edit: Ich glaube man braucht nur Write *g*
Frederic H.
  Mit Zitat antworten Zitat
TH3LL

Registriert seit: 25. Jan 2006
22 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: File of record speichern

  Alt 24. Okt 2006, 21:32
Autsch .. natürlich...

Rewrite muss es heissen, nicht Reset^^

Hatte zuerst reset da stehn und mich gewundert warums abbricht, aber die Datei ist ja noch nicht erstellt
Lange her dass ich Pascal geschrieben hab

Ok danke ^^ Es geht
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#5

Re: File of record speichern

  Alt 24. Okt 2006, 22:21
Nabend ...,
gutes Tutorial über typisierte Dateien.
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#6

Re: File of record speichern

  Alt 24. Okt 2006, 23:27
Abgesehen davon, das der Typ Real Out ist, wäre es zu empfehlen, ein Packed Record zu verwenden.
Sonst kann's mal mit dem Compilerschalter {$A+} etwas weh tun.

Delphi-Quellcode:
type TMesswert=PACKED record
    Amp1,Amp2:real;
    Vol1,Vol2:real;
  end;
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: File of record speichern

  Alt 24. Okt 2006, 23:32
Wenn du vor hast, mehrere verschiedene Arten von records in eine Datei zu speichern (kommt vor), dann empfehle ich einen Delphi-Referenz durchsuchenTFileStream.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: File of record speichern

  Alt 25. Okt 2006, 07:42
Ergänzend: Fehlerabfragen nicht Vergessen.

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  f: file of TMesswert;
  x, IOErr: integer;
begin
   If SaveDialog1.Execute then
   begin
     AssignFile(F, SaveDialog1.FileName);
     {$I-}
     Rewrite(F); // Datei neu Erstellen

     IOErr := IOResult;

     if IOErr = 0 then
     begin
       For x:= 0 to High(AlleMesswerte) do
         Write(f, AlleMesswerte[x]);

       CloseFile(F);
     end else
       Showmessage('Fehler bei Dateizugriff. #' + IntToStr(IOErr) );
     {$I+}
   end;

end;
... und ich würde mich mit der VCL auch für FileStreams entscheiden, ist irgendwie einfacher.

Delphi-Quellcode:
procedure TForm1.Button4aClick(Sender: TObject);
var
  fs: TFileStream;
  x: integer;
begin
   If SaveDialog1.Execute then
   begin
     fs := TFileStream.Create(SaveDialog1.FileName, fmCreate or fmOpenWrite);
     try
       fs.Seek(soFromBeginning, 0);

       For x:= 0 to High(AlleMesswerte) do
         fs.Write(AlleMesswerte[x], sizeof(TMesswert));
     finally
       fs.Free;
     end;
   end;
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
KeMa

Registriert seit: 27. Okt 2006
4 Beiträge
 
#9

Re: File of record speichern

  Alt 27. Okt 2006, 12:08
Hallo zusammen,

kann mir auch jemand sagen wie ich dieses Format speichern und öffnen kann?

Delphi-Quellcode:
Type TField = record
     Field : array of String [50]
end;

Type TDatSet = record
     DatSet : array of TField;
     DatExt : array of TField;
     DSFLength : Longword;
     DEFLength : Longword;
     DSLength : Longword;
     Name : String [20];
     Date : String [10];
end;

Type TDBFrame = record
     Data : array of TDatSet;
     System : array of TDatSet;
     DatLength : Longword;
     SysLength : Longword;
     Name : String[20];
end;

Var

DBFrame : TDBFrame;
Isch werd noch amol blöd mit Ding hier...

[edit=alcaeus]Delphi-Tags eingefuegt. Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#10

Re: File of record speichern

  Alt 27. Okt 2006, 12:46
Naja Hierbei handelt es sich nicht um klassisches Record speichern...

Jeder Record, der eine dynimische Variable hat, muss natürlich einzeln behandelt werden.

Frank
  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 02:12 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