![]() |
Record-Datei anlegen
Hallo!
Ich muss für die Uni ein Programm schreiben, dass nach der Eingabe von Abwurfhöhe und -geschwindigkeit die Wurfweite von einem horizontalen Wurf als Zahl und und auch grafisch ausgibt. Das hab ich auch alles so weit hinbekommen, obwohl ich von sowas eigentlich null Ahnung hab. Jetzt muss ich aber noch eine Record-Datei anlegen, die die eingegebenen Werte und die Ausgabe, also sowohl die Zahl als auch die gezeichnete Funktion, speichert. Leider komm ich damit absolut nicht klar, vor allem hab ich keine Ahnung, wie ich die Funktion speichern soll. Kann mir da wer helfen? Danke, gruß, Hannah |
Re: Record-Datei anlegen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, um eine Record-Struktur in eine Datei zu speichern,
1. Record definieren:
Delphi-Quellcode:
2. dann die Variablen deklarieren (global oder in Procedure):
type
TKoordRec = record x, y: Double; end;
Delphi-Quellcode:
3. Werte in Datei schreiben:
var
Koordinate: TKoordRec; // für die Zwischenspeierung der Werte KoordinatenDatei: File of TKoordRec; // typisierte Datei, hier werden die Werte mit Hilfe der Records gespeichert
Delphi-Quellcode:
4. zum Lesen aus der Datei:
procedure MachnuwasmitdenKoordinaten;
begin AssignFile(KoordinatenDatei, Dateiname); // Datei zuweisen Reset(KoordinatenDatei); // Datei öffnen Seek(KoordinatenDatei, FileSize(KoordinatenDatei)); // Datensatzzeiger an das Ende der Datei bewegen Koordinate.x := 1; Koordinate.y := 2.34567; Write(KoordinatenDatei, Koordinate); // die aktuellen Werte speichern CloseFile(KoordinatenDatei); // Datei schließen end;
Delphi-Quellcode:
Mit Schaltflächen (<< und >>) zum "Browsen" in der Datei kann man eine simple Datenbank erstellen, die jeweils nach ButtonClick den nächsten bzw. vorherigen Datensatz aus der Datei liest und darstellt.
procedure NuliesdieKoordinaten(welchenDatensatz: Integer);
begin AssignFile(KoordinatenDatei, Dateiname); // Datei zuweisen Reset(KoordinatenDatei); // Datei öffnen Seek(KoordinatenDatei, welchenDatensatz-1);// Datensatzzeiger an gewünschte Position bewegen Read(KoordinatenDatei, Koordinate); // die aktuellen Werte lesen CloseFile(KoordinatenDatei); // Datei schließen end; Als Anhang habe ich das Beispiel bereitgestellt, wie ich es in der Vorlesung gebracht habe. Gruß Michael |
Re: Record-Datei anlegen
Hi!
Zwei Tipps noch zu dem bereits sehr ausführlichen Post meines Vorschreibers :thumb: Damit Delphi weiß, wo ein Datensatz in der typisierten Datei aufhört, müssen alle Elemente des Records bekannte Längen haben. Bei Strings an sich ist dies aber nicht gegeben. Deshalb müssen Strings eine Längenangabe "mit sich tragen":
Delphi-Quellcode:
Was das Öffnen zum Schreiben angeht, empfiehlt sich ein Blick unter
type
TKoordRec = record x, y: Double; info: string[20]; end; ![]() Ciao Frederic |
Re: Record-Datei anlegen
Zitat:
|
Re: Record-Datei anlegen
um auch noch meinen Senf dazu abzugeben,
wenn die Datei noch nicht existitert, muß sie meines Wissens mit
Delphi-Quellcode:
erstellt werden, nur ein reset zum Erstellen wird
rewrite(datei)
wohl eine Fehlermeldung bringen. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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 by Thomas Breitkreuz