AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datenspeicherung

Offene Frage von "blacky35"
Ein Thema von blacky35 · begonnen am 23. Feb 2005 · letzter Beitrag vom 26. Feb 2005
Antwort Antwort
blacky35

Registriert seit: 9. Jan 2005
Ort: Pfaffenweiler
9 Beiträge
 
Delphi 2005 Professional
 
#1

Datenspeicherung

  Alt 23. Feb 2005, 09:43
Hallo,

habe als Anfänger ein kleines Problem.

Wenn ich ein Array aus einem Record habe und die Datensätze speichern will, wie gehe ich am besten vor. Welche Speicheart ist die Beste.
Es sollen aber noch zusätzlich Inhalte von Edit-Feldern und Zustände von Check-Boxen gespeichert weren. Also verschiedene Datenarten.

Von VBA her kenne ich die Eingabe von Zahlen in Textfelder mit Komma. Intern wird mit Punkt als Trenner gerechnet. Die Ausgabe erfolgt wieder mit Komma.
Wie wird das von Programmierern in Delphi gehandhabt. Wird hier alles mit Punkt gemacht. Eingabe und Ausgabe, oder wandelt ihr das Komma zur Berechnung um?

mfG blacky
Friedrich
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Datenspeicherung

  Alt 23. Feb 2005, 11:16
Zitat von blacky35:
Wie wird das von Programmierern in Delphi gehandhabt. Wird hier alles mit Punkt gemacht. Eingabe und Ausgabe, oder wandelt ihr das Komma zur Berechnung um?
Intern, also auch im Quelltext, schreibt man Dezimalzahlen in Delphi stets mit Punkt.
Um eine eingegebene Zahl (z.B. in einem Edit-Feld) in einen Real umzuwandeln, nimmt man meistens Delphi-Referenz durchsuchenStrToFloat. Ob bei der Eingabe ein Komma oder ein Punkt als Trennzeichen verlangt wird, gibt die Konstante DecimalSeparator an.

MfG
Binärbaum

//Edit: Tippfehler korrigiert
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Datenspeicherung

  Alt 23. Feb 2005, 11:40
Hai blacky35,

Du könntest es mit Typisierten Dateien versuchen.
Delphi-Quellcode:
type
 TmyRecord = record
               var1 : Integer;
               var2 : String[50];
             end;

procedure TForm1.Button1Click(Sender: TObject);
var
   myRecords : Array [1..10] of TmyRecord;
   myfile : File of TmyRecord;
   ndx : Integer;
begin
   AssignFile(myfile,'test.dat');
   Rewrite (myFile);
   for ndx := Low (myRecords) to High (myRecords) do
   begin
     Write (myfile,myRecords[ndx]);
   end;
   CloseFile (myfile);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
blacky35

Registriert seit: 9. Jan 2005
Ort: Pfaffenweiler
9 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Danke, aber......

  Alt 25. Feb 2005, 19:07
Hallo,

danke für eure schnellen Antworten. Das mit den typisierten Dateien habe ich verstanden, aber kann ich die Inhalte der Komponenten nicht auch in die gleiche Datei speichern.
Wie muß ich dazu vorgehen. Alles in einer Datei abzuspeichern. Array-Daten zusammen mit Komponenten-Inhalten (Edit, Check ...).

mfG blacky
Friedrich
  Mit Zitat antworten Zitat
Benutzerbild von ggfan
ggfan

Registriert seit: 7. Feb 2005
Ort: Grafing bei München
85 Beiträge
 
Delphi 7 Personal
 
#5

Re: Datenspeicherung

  Alt 26. Feb 2005, 13:13
Das geht in der Regel mit der Eigensachft SaveToFile

edit1.SaveToFile('c:\test.dat') Noch eine Frage zu oben: ich habe das jetzt so gemacht wie sharky es beschrieben hat:

Delphi-Quellcode:
type Tappointments = Record
                       ID : Integer;
                       DateOFAppoint : Real;
                       BeginOFAppoint : String;
                       EndOFAppoint : String;
                       Place : String;
                       Title : String;
                       details : string;
                     end;

var appointments: Array[1 .. 1000] of Tappointments;

procedure Tfrmmain.mnusaveClick(Sender: TObject);
var
   SaveAppointments : File of Tappointments;
   ndx : Integer;
begin
   AssignFile(SaveAppointments,'test.dat');
   Rewrite (SaveAppointments);
   for ndx := Low (appointments) to High (appointments) do
   begin
     Write (SaveAppointments, appointments[ndx]);
   end;
   CloseFile (Saveappointments);
end;
Doch dann kommt die Meldung: 'Tappointments benötigt Finalization'
André Prescher
42. Damit ist auch schon alles gesagt.

http://myfileadmin.aprescher.de
Dateiverwalter für Webserver
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Datenspeicherung

  Alt 26. Feb 2005, 13:34
Zitat von ggfan:
Das geht in der Regel mit der Eigensachft SaveToFile

edit1.SaveToFile('c:\test.dat')
Aber eine TEdit-Komponente hat doch gar kein SaveToFile. Das gibts nur bei Memo, TRichEdit, ...
Zitat von ggfan:
Noch eine Frage zu oben: ich habe das jetzt so gemacht wie sharky es beschrieben hat:

Delphi-Quellcode:
type Tappointments = Record
                       ID : Integer;
                       DateOFAppoint : Real;
                       BeginOFAppoint : String;
                       EndOFAppoint : String;
                       Place : String;
                       Title : String;
                       details : string;
                     end;

var appointments: Array[1 .. 1000] of Tappointments;

procedure Tfrmmain.mnusaveClick(Sender: TObject);
var
   SaveAppointments : File of Tappointments;
   ndx : Integer;
begin
   AssignFile(SaveAppointments,'test.dat');
   Rewrite (SaveAppointments);
   for ndx := Low (appointments) to High (appointments) do
   begin
     Write (SaveAppointments, appointments[ndx]);
   end;
   CloseFile (Saveappointments);
end;
Doch dann kommt die Meldung: 'Tappointments benötigt Finalization'
Das liegt an den Strings. Wenn man die Daten so speichern will, muss man die Länge der Strings in eckigen Klammern dahinter angeben, z.B.:
Delphi-Quellcode:
type Tappointments = Record
                       ID : Integer;
                       DateOFAppoint : Real;
                       BeginOFAppoint : String[50];
                       EndOFAppoint : String[50];
                       Place : String[40];
                       Title : String[20];
                       details : string[255];
                     end;
Die Zahlen sind jetzt willkürlich gewählt, es dürfen natürlich auch andere Werte sein. Jedoch muss man beachten, dass das Maximum bei 255 Zeichen liegt.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 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