Autor Beitrag
Krypt0
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Mi 01.04.09 09:25 
Hallo Delphi-Forum,
ich arbeite zur Zeit mit einer Gruppe an einem Kalender (ein Schulprojekt)und kümmere mich um das Abspeichern und laden von Terminen.
Leider habe ich keine Idee, in welcher Form ich das ganze Abspeichern soll. In einer einzigen Stringlist? Oder gleich für jeden Termin eine neue Stringlist?
Ich brauche nur eine Anregung und kleine Begründung der Idee...
Das Programmieren würde ich so weit wie möglich selber übernehmen

Vielen Dank schonmal

Krypt0
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 01.04.09 12:29 
willst du rein termine (also datum mit uhrzeit) speichern oder sollen noch andere Dinge dabei sein?

Wenn nur Datum mit Uhrzeit würd ich am ehestern zu FloatToStr raten und zu vl. einer INI oder einer Stringlist.

wenn auch noch andere Dinge dabei sein sollen wie Notizen usw. dann wäre es vermutlich am klügsten ein XML-File dafür zu verwenden.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 01.04.09 17:00 
Du könntest eine typisierte Datei verwenden :)
Vorraussetzung dafür ist, dass alle informationen pro Termin statische Größe haben, das heißt, du kannst keinen String speichern, wohl aber einen String statischer Größe wie z.B. String[255]. Ich geb dir mal ein Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
type TTermin = record
    Zeitpunkt: TDateTime
    Nachricht: String[255];
  end;
Hier hättest du einen statischen Datentyp in den du einen Termin speichern kannst. Nehmen wir an, du hast eine Menge von Terminen in einem dynamischen Array gespeichert, und möchtest dieses nun in eine Datei speichern:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var
  Termine: array of TTermin; {...nehmen wir an, das array sei schon gefüllt worden von dir.}
{...}
var
  f: file of TTermin; //typisierte Datei
  i: Integer;
begin
  AssignFile(f, 'C:\Dateiname');
  Reset(f) //Falls die Datei schon existiert (wird überschrieben)
  Rewrite(f) //Falls die Datei nicht existiert (wird erstellt)
  //Nur *einen* von den obigen Befehlen nutzen.
  for i := Low(Termine) to High(Termine) do //schleife durch dein Termine-Array
    Write(f, Termine[i]);

  CloseFile(f); //Datei schließen
end;


Das Laden funktioniert ganz ähnlich, mit Read, wobei du die Länge deines Arrays mit SetLength anpassen musst. Die Anzahl der gespeicherten Termine bekommst du mit SizeOf(f) div SizeOf(TTermin) heraus (Länge der Datei geteilt durch Größe des Records; geht vermtl. auch anders - irgendwie)
Eine Möglichkeit um Nachrichten mit mehr als 256 Zeichen zu speichern wäre 2 Dateien anzulegen, die eine enthält dann die Nachrichten, in der anderen speicherst du für jeden Termin eine Zeilennummer (ersetze also Nachricht: String[255] mit Nachricht: Integer). Die Datei mit den Nachrichten würdest du dann einfach per TStringList laden und speichern :)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.