AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Kontaktprogramm, Probleme beim Dateiladen
Thema durchsuchen
Ansicht
Themen-Optionen

Kontaktprogramm, Probleme beim Dateiladen

Ein Thema von Damaster · begonnen am 8. Jan 2008 · letzter Beitrag vom 8. Jan 2008
Antwort Antwort
Damaster

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

Kontaktprogramm, Probleme beim Dateiladen

  Alt 8. Jan 2008, 16: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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: Kontaktprogramm, Probleme beim Dateiladen

  Alt 8. Jan 2008, 16:46
Du musst die Größe des zu füllenden Arrays zunächst festlegen, bevor Du es befüllst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#3

Re: Kontaktprogramm, Probleme beim Dateiladen

  Alt 8. Jan 2008, 16:56
Poste mal die Fehlermeldung. Das mit dem Array ist Quatsch oder habe ich beidem unuebersichtlichen code was uwebersehen?
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#4

Re: Kontaktprogramm, Probleme beim Dateiladen

  Alt 8. Jan 2008, 16:57
So, Quatsch? Was geschieht denn hier?
Zitat:
Delphi-Quellcode:
g:=0;
while not(eof(t)) do begin
read(t,x);
typ[g]:=x;
inc(g);
end;
[edit] Versuch es mal so:
Delphi-Quellcode:
procedure TForm1.Laden1Click(Sender: TObject);
var t:file of Tmensch;
    x: tmensch;
    g:integer;
begin
  if not pr then begin
    Showmessage('Bitte zuerst speichern');
    exit;
  end;
  if opendialog1.Execute then begin
    if fileexists(opendialog1.filename) then begin
      pr:=false;
      assignfile(t,opendialog1.filename);
      reset(t);
      SetLength(typ,FileSize(t)); //Größe des Arrays an Anzahl der Records anpassen
      seek(t,0);
      g:=0;
      while not(eof(t)) do begin
        read(t,x);
        typ[g]:=x;
        inc(g);
      end;
      closefile(t);
    end;
  end;
end;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Damaster

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

Re: Kontaktprogramm, Probleme beim Dateiladen

  Alt 8. Jan 2008, 18:16
Danke dein Vorschlag hat funktioniert.
Eigentlich hätte es mir auffallen müssen. seis drum, manchmal sieht man den wald vor lauter bäumen nicht
Ich musste zwar noch den Rest bei der Ausgabe umschreiben aber jetzt funktioniert alles wie es soll!
Ich weis, der code ist och unübersichtlich, das Programm aber auch noch nicht fertig.
Nochmals vielen Dank!
mfg
Damaster
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:50 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