Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Abspeichern in einem Stream (https://www.delphipraxis.net/99104-abspeichern-einem-stream.html)

crz 6. Sep 2007 22:06


Abspeichern in einem Stream
 
Hallo ;)

Ich bin grad an einem kleinen Projekt. Ich hab irgendwo gesehen, das jemand einen Vokabeltrainer mal programmiert hat.
Nunja, ich bin es auch grad am Ausprobieren. Nun hab ich folgendes Problem.

Wie speicher ich die Vokabeln im Stream, sodass ich sie nicht jedes mal vorher eintippen muss.
Hat jemand eine Idee?



Danke ;)

DGL-luke 6. Sep 2007 22:14

Re: Abspeichern in einem Stream
 
Hallo,

dazu musst du dir ein Datenformat überlegen.

- Typisierte Dateien
- Records
- XML
- Relationale Datenbank

Okay, Datenbank könnte ein klein wenig oversized sein... zu den ersten drei findest du genug hier in der DP.

Eine einfache Lösung mit Records wäre so:

Delphi-Quellcode:
type
  TVokabel = record
    Deutsch, Englisch: string[255];

  TVokabeln = array of TVokabel;

procedure Load(fname: string; out vokabeln: TVokabeln);
var
  i: Integer;
begin
  with TFileStream.Create(fname, fmOpenRead) do
  try
    Setlength(vokabeln, Size div sizeof(vokabeln));
    for i := 0 to high(vokabeln) do
      Read(vokabeln[i], sizeof(vokabeln));
  finally
    Free;
  end;
end;
Da ist jetzt nur das Laden drin - aber wenn du dich ein bisschen damit beschäftigst, solltest du auch recht schnell herausfunden, wie das speichern geht.

Und schau dir ruhig auch die anderen Möglichkeiten mal an.

crz 6. Sep 2007 22:17

Re: Abspeichern in einem Stream
 
Hab es über Record gemacht. aber danke dir;) ich schau's mir an ;)

Dax 6. Sep 2007 22:23

Re: Abspeichern in einem Stream
 
Hier im Forum suchendpCollection


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