AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi SaveToFile(beliebige Variable);
Thema durchsuchen
Ansicht
Themen-Optionen

SaveToFile(beliebige Variable);

Offene Frage von "Flo.Hoe"
Ein Thema von Flo.Hoe · begonnen am 22. Jun 2007 · letzter Beitrag vom 23. Jun 2007
Antwort Antwort
Seite 2 von 2     12   
Flo.Hoe

Registriert seit: 28. Sep 2006
Ort: Berlin
73 Beiträge
 
Turbo C++
 
#11

Re: SaveToFile(beliebige Variable);

  Alt 22. Jun 2007, 20:21
Was wäre denn der Ansatz für den nächsten Schritt?
Florian
  Mit Zitat antworten Zitat
marabu

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

Re: SaveToFile(beliebige Variable);

  Alt 22. Jun 2007, 20:21
Hallo Florian,

du musst auch darauf achten, dass der FileMode zu deiner I/O-Methode passt - fmOpenWrite harmoniert eher mit LStream.Write. Und das beim Schreiben wirklich nur 48 Byte verfügbar waren kannst du mit SizeOf(DeineStruktur) überprüfen. Zeige am besten mal den Record, den du speicherst.

Grüße vom marabu
  Mit Zitat antworten Zitat
Flo.Hoe

Registriert seit: 28. Sep 2006
Ort: Berlin
73 Beiträge
 
Turbo C++
 
#13

Re: SaveToFile(beliebige Variable);

  Alt 22. Jun 2007, 20:31
Delphi-Quellcode:
Type THeld = class(Tobject)

  Procedure Anfangswerte;

  procedure ausrichten(Richtung:integer);
  Procedure links_drehen (A,R:integer);
  Procedure Zufall_drehen(A,R:Integer);
  Procedure rechts_drehen(A,R:integer);
 
  Procedure laufen;

  Procedure SchrittRechtsGehen(z:integer);
  Procedure Bewegungsperiode_rechts;
  Procedure Abschluss_rechts;

  Procedure SchrittLinksGehen(z:integer);
  Procedure Bewegungsperiode_links;
  Procedure Abschluss_links;

  Procedure Schrittzurueckgehen(z:integer);
  Procedure Bewegungsperiode_zurueckgehen;
  procedure SchrittVorGehen(z:integer);
  Procedure Bewegungsperiode_Vor;




  function ScheinH(Entfernung:Real):Real;
  function Scheinb(Entfernung:Real):Real;
  function ScheinV(Entfernung:Real):Integer;
  function getSchrittlaengeX(Entfernung:Real):Integer;
  function getSchrittlaengeY(Entfernung:Real;R:Integer):Integer;
  function getBmpUY(Entfernung:Real):Real;

  Function Frei(R:integer):Boolean;

  Procedure save; // Held soll gespeichert werden
  Procedure load; // Held soll durch die gespeicherte Datei ersetzt werden

  private
     { Private declarations }
  public

     
    Bild: TBitmap;
    Frame,Ausgang,NBXPeriode,NBYPeriode:integer;
    xPos,yPos,zPos,Bildnummer,Breite,Hoehe,v,sBezug,ScheinHoehe,HBVerhaeltnis,Sicht: real;
    rechts,links,unten,oben,weiter,Prozess,XBewegung:boolean;
    Pfad:String;

     { Public declarations }
  end;

var Held : THeld;
Florian
  Mit Zitat antworten Zitat
marabu

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

Re: SaveToFile(beliebige Variable);

  Alt 22. Jun 2007, 20:50
Hallo Florian,

die Methode Save() deiner Klasse THeld kann nur elementare Datentypen (Integer, Boolean, Char, u.ä.) problemlos speichern und wieder laden. Bei speziellen Typen wie string muss man sich schon etwas Gedanken machen und bei Arrays, Objekten und Records noch mehr. Auf jeden Fall ist es unnütz den Wert eines Zeigers zu speichern, denn in der Regel wird dieser Wert ungültig, bis du ihn wieder einliest.

Bei deinen Daten ist TBitmap ein solcher Zeiger. Es wäre zu überlegen, ob du nicht einfach einen Namen für das Bild als string speicherst. Wenn ich deine Klasse THeld so sehe und deinen Kenntnisstand richtig einschätze, dann möchte ich dir die Speicherung in einer INI-Datei nahelegen.

Freundliche Grüße
  Mit Zitat antworten Zitat
Flo.Hoe

Registriert seit: 28. Sep 2006
Ort: Berlin
73 Beiträge
 
Turbo C++
 
#15

Re: SaveToFile(beliebige Variable);

  Alt 23. Jun 2007, 00:50
Die Speicherung in einer ini-Datei hat hervorragend geklappt, aber schon bei einigen meiner anderen variablen funktioniert das nicht mehr.
Sie bestehen nämlich selbst aus mehreren Objekten,sodass es mir unmöglich erscheint sie in elementare Teile zu zerlegen.

Warum gibt es Keinen Befehl, der ein Objekt:... im Verzeichnis:... speichert (um welches Objekt es sich auch handeln möge).
Florian
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: SaveToFile(beliebige Variable);

  Alt 23. Jun 2007, 03:14
Woher soll denn diese universelle Funktion wissen, wie das Objekt aufgebaut ist und wie man es speichert?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Flo.Hoe

Registriert seit: 28. Sep 2006
Ort: Berlin
73 Beiträge
 
Turbo C++
 
#17

Re: SaveToFile(beliebige Variable);

  Alt 23. Jun 2007, 11:50
Jedes Objekt wird zur Laufzeit Temporär gespeichert. Daher muss es doch auch möglich sein, es ohne große Umstände auf die Festplatte zu schreiben.
Florian
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#18

Re: SaveToFile(beliebige Variable);

  Alt 23. Jun 2007, 12:01
Hallo,

da solltest du mit der Typinfo und den DFM-Sachen arbeiten. Da gabs doch mal was... Stichwort [dp]Serialisier* RTTI[/dp].
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:46 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