Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Daten behalten in Delphi (https://www.delphipraxis.net/147428-daten-behalten-delphi.html)

Arathok 8. Feb 2010 12:55


Daten behalten in Delphi
 
Hallo Leute,

Ich habe vor für ein Schulprojekt einen aktiven Geburtstagskalender zu programmieren.
Im Form gibt es zweidimensionale Arrays die als Tabelle angezeigt werden.
Darin kann man die Daten Eintragen. WEnn ich das Programm das nächste mal starte werden natürlich alle Felder resettet.
Wie kann ich dafür sorgen das die Daten erhalten bleiben?

Danke für eure Hilfe im Vorraus

Mithrandir 8. Feb 2010 12:57

Re: Daten behalten in Delphi
 
Du speicherst die Daten im Benutzerverzeichnis ab. Dabei kannst du XML, Ini, usw. nutzen. Dann musst du dich halt nur noch drum kümmern, wie du deine Daten in Textform bringst, was aber gar nicht so schwer ist. ;)

Arathok 8. Feb 2010 12:59

Re: Daten behalten in Delphi
 
HM. Aber wie speichere ich die Daten ab? als Record?
Und wie bringe ich sie in die geeignete Textform / so dass sie wieder an den Selben Array Plätzen sind?

DeddyH 8. Feb 2010 13:06

Re: Daten behalten in Delphi
 
Falls es sich um statische Arrays handelt kannst Du diese leicht in Records ablegen und als typisierte Datei o.ä. abspeichern.

patti 8. Feb 2010 13:08

Re: Daten behalten in Delphi
 
Welchen Datentyp hat denn das Array und wie ist es aufgebaut? Etwa so:

Delphi-Quellcode:
Daten : array[1..12] of array[1..31] of string;
:?:

Oder hast du einen eigenen Datentypen (beispielsweise in Form eines records) definiert, den du in einem dynamischen Array verwaltest?

Arathok 8. Feb 2010 13:12

Re: Daten behalten in Delphi
 
es ist standart mäßig nach

array[1..12] of array[1..31] of string; aufgebaut jo.

jetzt brauch ich nur noch hilfe wie genau ich den record abspeicherer oder ob es nicht vielleicht noch anders geht...

DeddyH 8. Feb 2010 13:15

Re: Daten behalten in Delphi
 
Naja, bei String dürfte das mit dem Record abspeichern schwierig werden, man müsste auf ShortString oder ein array of Char ausweichen. Da scheint mir eine Lösung mit TIniFile oder XML besser geeignet zu sein. Bei TIniFile könnten die "Zeilen" die Sektionen bilden und die "Spalten" die Werte.

Arathok 8. Feb 2010 13:17

Re: Daten behalten in Delphi
 
gibts dazu ein tutorial? ich habe nur ein halbes jahr Grundkurserfahrung... :(

Mithrandir 8. Feb 2010 13:17

Re: Daten behalten in Delphi
 
Ini-Dateien

DeddyH 8. Feb 2010 13:18

Re: Daten behalten in Delphi
 
Warum in die Ferne schweifen ;)? Ini-Tutorial

Mithrandir 8. Feb 2010 13:20

Re: Daten behalten in Delphi
 
Macht der Gewohnheit. :mrgreen:

patti 8. Feb 2010 13:21

Re: Daten behalten in Delphi
 
Alternativ kannst du deine Daten auch in einem Stream speichern. Entsprechende Tutorials lassen sich mit Sicherheit über die DP finden.

DeddyH 8. Feb 2010 13:22

Re: Daten behalten in Delphi
 
Zitat:

Zitat von Daniel G
Macht der Gewohnheit. :mrgreen:

[OT] Macht ja nix :mrgreen: [/OT]

Blackheart 8. Feb 2010 13:22

Re: Daten behalten in Delphi
 
Meiner Ansicht der beste Ini Tutorial

Arathok 8. Feb 2010 13:27

Re: Daten behalten in Delphi
 
ok danke :) wer nochwas hat einfach her damit.
Danke für die schnellen Antworten :)
Mal schauen ob sich as tut.

Aphton 8. Feb 2010 13:40

Re: Daten behalten in Delphi
 
Vlt. als ne Anleitung, wie du vorgehen solltest

Speichern:
Code:
1. Lege eine Datei an
2. Du schreibst deine Daten in die Datei, indem du...
3. Mit zwei Schleifen alle Elemente des Arrays durchgehst
4. -1. Die Länge des Strings (DWord)
   -2. Den eigentlichen String
   -- in die Datei schreibst
5. Schließe die Datei
Auslesen:
Code:
1. Öffne die Datei
2. Mit zwei Schleifen gehst du alle Elemente des Arrays durch
3. -1. Zuerst liest du einen DWord ein - gibt die Länge des anstehenden Strings an (siehe Speichern, Punkt 4.1)
   -2. Anschließend den ganzen String (du liest X Bytes ein, wobei X für die Länge des Strings steht)
x. Schließe die Datei
Hoffe ich konnte damit helfen
MfG

Amateurprofi 8. Feb 2010 14:39

Re: Daten behalten in Delphi
 
Zitat:

Zitat von Arathok
es ist standart mäßig nach

array[1..12] of array[1..31] of string; aufgebaut jo.

jetzt brauch ich nur noch hilfe wie genau ich den record abspeicherer oder ob es nicht vielleicht noch anders geht...

Vielleicht so :
Delphi-Quellcode:
var data:array[1..12] of array[1..31] of string;

PROCEDURE SaveData;
var f:File; m,d,len:integer;
begin
   AssignFile(f,'data.bin');
   Rewrite(f,1);
   for m:=1 to 12 do
      for d:=1 to 31 do begin
         len:=Length(data[m,d]);
         BlockWrite(f,len,SizeOf(Len));
         if len>0 then BlockWrite(f,data[m,d,1],len);
      end;
   CloseFile(f);
end;

PROCEDURE LoadData;
var f:File; m,d,len:integer;
begin
   AssignFile(f,'data.bin');
   Reset(f,1);
   for m:=1 to 12 do
      for d:=1 to 31 do begin
         BlockRead(f,len,SizeOf(Len));
         SetLength(data[m,d],len);
         if len>0 then BlockRead(f,data[m,d,1],len);
      end;
   CloseFile(f);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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