Entwickler-Ecke

Sonstiges (Delphi) - Wo ist der Fehler ?


Pandax3 - Di 17.05.11 19:03
Titel: Wo ist der Fehler ?
Hallo leute,
ich möchte eigentlich nur ein paar infos über ne person abspeichern und wieder laden , allerdings klappt das laden in die edit felder nicht so wie gewünscht ;D
kann vielleicht mal jemand gugn was hier falsch ist? ;D schon mal danke ;D :o


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
    tprofil = record
                   vorname,nachname,email,
                   hobbys1,hobbys2,Wohnort:String[50];
              End;

 TForm1 = class(TForm)
    Edit1: TEdit;
    Image1: TImage;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

  profil:tprofil;
  datei:file of tprofil;
  
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
profil.vorname:=edit2.text;
profil.nachname:=edit3.text;
profil.email:=edit4.text;
profil.Hobbys1:=edit5.text;
profil.Hobbys2:=edit6.text;
profil.Wohnort:=edit7.text;

System.Assign(datei,'profil.dat');
System.Rewrite(datei);
System.Write(datei,profil);
System.Close(datei);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  System.Assign(datei,'profil.dat');
  System.Reset(datei);
  While Not Eof(datei) DO
  Begin
    System.Read(datei,profil);
  End;
  System.Close(datei);
end;

end.


HenryHux - Di 17.05.11 19:12

Hi,

habe mir das jetzt nicht genau angeguckt, aber was meinst du das Laden klappt nicht so wie gewünscht?
Wenn du das wirklich in die Edit Felder laden willst, dann hast du was vergessen.
Ich sehe kein editx.text := ..

lg


JDKDelphi - Di 17.05.11 19:13

Hallo,

vielleicht sollte man die TEdit-felder beim Dateiladen auch wieder füllen?
Etwas so:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button2Click(Sender: TObject);
begin  
  System.Assign(datei,'profil.dat');  
  System.Reset(datei);  
  While Not Eof(datei) DO  
  Begin    
   System.Read(datei,profil);  
  End;  
  System.Close(datei);
  //--------
   edit1.Text := profil.VorName;
  // usw.
end;


Natürlich noch ein bisschen Fehlerbearbeitung etc. einfügen


Gruss


>M@steR< - Di 17.05.11 19:20

Gelöscht


Pandax3 - Di 17.05.11 19:38

so vielen dank ;D jo tut jetzt

p.s das mit den arrays of tprofil kommt vllt später ;)


beastofchaos - Di 17.05.11 22:00

Ich bin da anscheinend unwissend. Was zeichnet zum Beispiel so einen Typen aus: "file of TProfil"? File kenn ich, aber "von TProfil"?


>M@steR< - Di 17.05.11 22:11

Gelöscht


Dude566 - Di 17.05.11 22:44

user profile icon>M@steR< hat folgendes geschrieben Zum zitierten Posting springen:
Such mal nach "typorisierte dateien"


Er meint typisierte Dateien. ;)


>M@steR< - Di 17.05.11 22:51

Gelöscht


jaenicke - Mi 18.05.11 05:57

user profile iconbeastofchaos hat folgendes geschrieben Zum zitierten Posting springen:
Ich bin da anscheinend unwissend. Was zeichnet zum Beispiel so einen Typen aus: "file of TProfil"? File kenn ich, aber "von TProfil"?
Wobei ich dir die Verwendung solcher typisierter Dateien ohnehin nicht empfehlen würde. Die sind sehr unflexibel und setzen voraus, dass die Größe jedes Datensatzes immer gleich ist. Du kannst also nur Strings bis zu einer Länge von 255 Zeichen verwenden, keinerlei Pointerdatentypen, ...

Da sind selbst einfachste Datenbankkomponenten besser geeignet. (Oder eigene Formate wie ich sie gern für private Projekte verwende.)


HenryHux - Mi 18.05.11 07:52

Ach, nochwas.
Ist mir was gerade aufgefallen zu deinen Lade/Speicher Vorgängen.
Lies dir mal den Thread durch =)
http://www.delphi-library.de/topic_warum+bei+Dateinamen+der+Pfad+mit+angegeben+werden+muss_82952,0.html

lg


Pandax3 - Mi 18.05.11 18:44

hm ja danke ;D