![]() |
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 |
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. ;)
|
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? |
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.
|
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? |
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... |
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.
|
Re: Daten behalten in Delphi
gibts dazu ein tutorial? ich habe nur ein halbes jahr Grundkurserfahrung... :(
|
Re: Daten behalten in Delphi
|
Re: Daten behalten in Delphi
Warum in die Ferne schweifen ;)?
![]() |
Re: Daten behalten in Delphi
Macht der Gewohnheit. :mrgreen:
|
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.
|
Re: Daten behalten in Delphi
Zitat:
|
Re: Daten behalten in Delphi
Meiner Ansicht der beste
![]() |
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. |
Re: Daten behalten in Delphi
Vlt. als ne Anleitung, wie du vorgehen solltest
Speichern:
Code:
Auslesen:
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
Code:
Hoffe ich konnte damit helfen
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 MfG |
Re: Daten behalten in Delphi
Zitat:
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 20: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