Einzelnen Beitrag anzeigen

Damaster

Registriert seit: 26. Nov 2007
14 Beiträge
 
#1

Kontaktprogramm, Probleme beim Dateiladen

  Alt 8. Jan 2008, 15:40
Hallo Leute!

Ich habe mal wieder Probleme mit einem Projekt für die schule. Kann mir vll jemand helfen?

Delphi-Quellcode:
implementation

{$R *.dfm}

type TMensch= record name,vname,tel,handy,email,ort,strasse,post,icq:string[100];
              end;
var typ:array of TMensch;
     i:integer;
     pr:boolean;

procedure TForm1.FormCreate(Sender: TObject);
var f:file of tmensch;
l:integer;
begin
pr:=true;
i:=1;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
d,a:integer;
begin
pr:=false;
a:=0;
setlength(typ,i);
   with typ[i-1] do begin
      name:=Edit2.text;
      vname:=Edit1.text;
      Ort:=Edit4.text;
      Handy:=Edit9.text;
      Tel:=Edit8.text;
      icq:=Edit7.text;
      Strasse:=Edit5.text;
      Post:=Edit3.text;
      email:=Edit6.text;
      end;
   inc(i);
   Form1.Leeren;
   Edit1.SetFocus;
end;


procedure TForm1.Button2Click(Sender: TObject);
var s:integer;
begin
Listbox1.clear;
   for s:=1 to i-1 do begin
      with typ[s-1] do begin
         with listbox1.Items do begin
            add('Vorname: '+vname);
            add('Name: '+name);
            add('Adresse: ');
            add('Postleitzahl: '+post);
            add('Ort: '+ort);
            add('Straße: '+strasse);
            add('Kontaktinformationen: ');
            add('E-Mail: '+email);
            add('ICQ: '+icq);
            add('Telefon: '+tel);
            add('Handy: '+handy);
            add('------------------------------------------------------');
         end;
      end;
   end;
end;


procedure TForm1.Leeren;
var a:integer;
begin
   for a := 1 to 9 do begin
      with TEdit(findcomponent('Edit'+inttostr(a))) do
         text := '';
   end;
end;


procedure TForm1.Restart1Click(Sender: TObject);
begin
   Listbox1.clear;
   Form1.Leeren;
   Edit1.SetFocus;
   i:=1;
end;


procedure TForm1.Ende1Click(Sender: TObject);
begin
if pr=true then close else showmessage('Es wurde nicht gespeichert');
end;



procedure TForm1.Button3Click(Sender: TObject);
var a:integer;
begin
Listbox1.clear;
if radiobutton1.Checked then for a:=low(typ) to high(typ) do
if typ[a].name=Edit10.Text then
begin
 with typ[a] do begin
         with listbox1.Items do begin
            add('Vorname: '+vname);
            add('Name: '+name);
            add('Adresse: ');
            add('Postleitzahl: '+post);
            add('Ort: '+ort);
            add('Straße: '+strasse);
            add('Kontaktinformationen: ');
            add('E-Mail: '+email);
            add('ICQ: '+icq);
            add('Telefon: '+tel);
            add('Handy: '+handy);
            add('------------------------------------------------------');
         end;
      end;
end;
if radiobutton2.Checked then for a:=low(typ) to high(typ) do
if typ[a].vname=Edit10.Text then
begin
 with typ[a] do begin
         with listbox1.Items do begin
            add('Vorname: '+vname);
            add('Name: '+name);
            add('Adresse: ');
            add('Postleitzahl: '+post);
            add('Ort: '+ort);
            add('Straße: '+strasse);
            add('Kontaktinformationen: ');
            add('E-Mail: '+email);
            add('ICQ: '+icq);
            add('Telefon: '+tel);
            add('Handy: '+handy);
            add('------------------------------------------------------');
         end;
      end;
end;
if radiobutton3.Checked then for a:=low(typ) to high(typ) do
if typ[a].post=Edit10.Text then
begin
 with typ[a] do begin
         with listbox1.Items do begin
            add('Vorname: '+vname);
            add('Name: '+name);
            add('Adresse: ');
            add('Postleitzahl: '+post);
            add('Ort: '+ort);
            add('Straße: '+strasse);
            add('Kontaktinformationen: ');
            add('E-Mail: '+email);
            add('ICQ: '+icq);
            add('Telefon: '+tel);
            add('Handy: '+handy);
            add('------------------------------------------------------');
         end;
      end;
end;
end;

procedure TForm1.Speichern1Click(Sender: TObject);
 var t:file of Tmensch;
 g:integer;
begin
if savedialog1.Execute then
                       begin
                        assignfile(t,savedialog1.FileName+copy(savedialog1.Filter,12,4));
                        if fileexists(savedialog1.FileName) then begin
                                                                 deletefile(savedialog1.FileName);
                                                                 rewrite(t);
                                                                 for g:=0 to high(typ) do
                                                                 write(t,typ[g]);
                                                                 closefile(t);
                                                                 pr:=true;
                                                                 end
                         else begin
                               rewrite(t);
                               for g:=0 to high(typ) do
                               write(t,typ[g]);
                               closefile(t);
                               pr:=true;
                              end;
end;
end;

procedure TForm1.Laden1Click(Sender: TObject);
var t:file of Tmensch;
var x: tmensch;
g:integer;
begin
if pr= false then showmessage('Bitte zuerst speichern');
if opendialog1.Execute then begin
if fileexists(opendialog1.filename) then begin
pr:=false;
assignfile(t,opendialog1.filename);
reset(t);
seek(t,0);
g:=0;
while not(eof(t)) do begin
read(t,x);
typ[g]:=x;
inc(g);
end;
closefile(t);
end else exit;
end;
end;

end.
Also mein Problem liegt darin, dass ich ne Fehlermeldung bekomme, wenn ich versuche die datei zu laden. Das speichern klappt ja. Ne datei mit 10 zahlen ,also file of integer, kann ich auch so laden. Nur hier habe ich Probleme.
Kann mir bitte jemand sagen, woran das liegt?
Ich weis der letzte Teil ist noch nicht richtig formatiert und es sind noch globale variabeln drin, aber nur, weil mein infolehrer meinte es würde daran liegen. allerdings quatsch, wie wir bei einem anderen projekt in der schule gemerkt hatten.

Wäre dankbar für eure Hilfe.
MfG
Damaster
  Mit Zitat antworten Zitat