Einzelnen Beitrag anzeigen

Newbi

Registriert seit: 2. Apr 2008
15 Beiträge
 
#1

Probleme beim lesen einer typiesierten Datei

  Alt 25. Apr 2008, 06:56
Delphi-Quellcode:
procedure TFrm_Adress_Edit.Btn_Action_SearchClick(Sender: TObject);
var
restore:Integer;
DateiSizeCon:Integer;
begin

// ID Abfragen
        ID:=strtoint(Edt_Eingabe_ID.Text);
        ID:=ID-1;
// Datei öffnen
        AssignFile(Unit_Main.Datei, Unit_Startseite.DateiName);
        FileMode:=1; // Datei wird nur mit SchreibeBerechtigung geöffnet
        Reset(Unit_Main.Datei);
// Dateizeiger sätzen
        //try
                seek(Unit_Main.Datei,ID);
                read(Unit_Main.Datei,Unit_Main.Datensatz);
                // Datei schließen
                        closeFile(Unit_Main.Datei);
                // Buttens und Label
                        Btn_Action_Search.Visible:=false;
                        Btn_Action_Save.Visible:=true;
                        Edt_Eingabe_ID.Visible:=false;
                        Lbl_Ausgabe_ID.Visible:=true;
                // Variablen füllen
                        Unit_Main.Datensatz.Name:=Name;
                        Unit_Main.Datensatz.Vorname:=Vorname;
                        Unit_Main.Datensatz.Street:=Street;
                        Unit_Main.Datensatz.Hausnummer:=Hausnummer;
                        Unit_Main.Datensatz.PLZ:=PLZ;
                        Unit_Main.Datensatz.Stadt:=Stadt;
                        Unit_Main.Datensatz.Land:=Land;
                        Unit_Main.Datensatz.Telefon_Mobil:=Telefon_Mobil;
                        Unit_Main.Datensatz.Telefon_Privat:=Telefon_Privat;
                        Unit_Main.Datensatz.Telefon_Arbeit:=Telefon_Arbeit;
                        Unit_Main.Datensatz.Fax:=Fax;
                        Unit_Main.Datensatz.Mail_1:=Mail_1;
                        Unit_Main.Datensatz.Mail_2:=Mail_2;
                        Unit_Main.Datensatz.www:=www;
                        Unit_Main.Datensatz.ICQ:=ICQ;
                        Unit_Main.Datensatz.MSN:=MSN;
                        Unit_Main.Datensatz.AIM:=AIM;
                        Unit_Main.Datensatz.Yahoo:=Yahoo;
                        Unit_Main.Datensatz.ID:=ID;
                        Unit_Main.Datensatz.Delete:=Delete;
                // Wurde der Eintrag gelöscht?
                        if Delete=true
                                then
                                        begin
                                                Restore:=Application.MessageBox('Eintrag wurde gelöscht! Wiederherstellen?','Gelöscht',MB_YESNO);
                                                Btn_Action_Search.Visible:=true;
                                                Btn_Action_Save.Visible:=false;
                                                Edt_Eingabe_ID.Visible:=true;
                                                Lbl_Ausgabe_ID.Visible:=false;
                                                if Restore=6
                                                        then
                                                                Unit_Main.Datensatz.Name:=Name;
                                                                Unit_Main.Datensatz.Vorname:=Vorname;
                                                                Unit_Main.Datensatz.Street:=Street;
                                                                Unit_Main.Datensatz.Hausnummer:=Hausnummer;
                                                                Unit_Main.Datensatz.PLZ:=PLZ;
                                                                Unit_Main.Datensatz.Stadt:=Stadt;
                                                                Unit_Main.Datensatz.Land:=Land;
                                                                Unit_Main.Datensatz.Telefon_Mobil:=Telefon_Mobil;
                                                                Unit_Main.Datensatz.Telefon_Privat:=Telefon_Privat;
                                                                Unit_Main.Datensatz.Telefon_Arbeit:=Telefon_Arbeit;
                                                                Unit_Main.Datensatz.Fax:=Fax;
                                                                Unit_Main.Datensatz.Mail_1:=Mail_1;
                                                                Unit_Main.Datensatz.Mail_2:=Mail_2;
                                                                Unit_Main.Datensatz.www:=www;
                                                                Unit_Main.Datensatz.ICQ:=ICQ;
                                                                Unit_Main.Datensatz.MSN:=MSN;
                                                                Unit_Main.Datensatz.AIM:=AIM;
                                                                Unit_Main.Datensatz.Yahoo:=Yahoo;
                                                                Unit_Main.Datensatz.ID:=ID;
                                                                Delete:=false;
                                                                Unit_Main.Datensatz.Delete:=Delete;
                                                                // Das Array in die SpeichernDatei schreiben
                                                                        AssignFile(Unit_Main.Datei, Unit_Startseite.DateiName);
                                                                        FileMode:=1; // Datei wird nur mit SchreibeBerechtigung geöffnet
                                                                        Reset(Unit_Main.Datei);
                                                                        // Ans Ende der Datei gehen
                                                                                seek(Unit_Main.Datei,Unit_Main.DateiSize);
                                                                        // Dateien eintragen & Datei schließen
                                                                                write(Unit_Main.Datei,Unit_Main.Datensatz);
                                                                                CloseFile(Unit_Main.Datei);
                                                                        // SpeichernDatei prüfen
                                                                                AssignFile(Unit_Main.Datei, DateiName);
                                                                                FileMode:=0; // Datei wird nur mit LeseBerechtigung geöffnet
                                                                                Reset(Unit_Main.Datei);
                                                                                DateiSizeCon:=FileSize(Unit_Main.Datei);
                                                                                CloseFile(Unit_Main.Datei);
                                                                                // Wurde die Datei erfolgreich gespeichert?
                                                                                        If (Unit_Main.DateiSize=DateiSizeCon) or (Unit_Main.DateiSize>DateiSizeCon)
                                                                                                then
                                                                                                        begin
                                                                                                                // Nein die Daten wurden nicht gespeichert
                                                                                                                        Application.MessageBox('Es gab einen Fehler beim wiederherstellen der Adresse!','Dateifehler',MB_OK);
                                                                                                        end
                                                                                                else
                                                                                                        begin
                                                                                                                // Ja die Daten wurden erfolgreich gespeichert
                                                                                                                        Unit_Main.ID:=Unit_Main.ID+1;
                                                                                                                        Lbl_Ausgabe_ID.Caption:=inttostr(Unit_Main.ID);
                                                                                                                        Application.MessageBox('Adresse erfolgreich wiederhegestellt!','Adresse UnLöschen',MB_OK);
                                                                                                                        Btn_Action_Clear.Click;
                                                                                                        end;
                                        end
                                else
                                        begin
                                                // Felder füllen
                                                        Edt_Eingabe_Fax.Text:=inttostr(Unit_Main.Datensatz.Fax);
                                                        Edt_Eingabe_Hausnummer.Text:=Unit_Main.Datensatz.Hausnummer;
                                                        Edt_Eingabe_Land.Text:=Unit_Main.Datensatz.Land;
                                                        Edt_Eingabe_Name.Text:=Unit_Main.Datensatz.Name;
                                                        Edt_Eingabe_PLZ.Text:=inttostr(Unit_Main.Datensatz.PLZ);
                                                        Edt_Eingabe_Stadt.Text:=Unit_Main.Datensatz.Stadt;
                                                        Edt_Eingabe_Street.Text:=Unit_Main.Datensatz.Street;
                                                        Edt_Eingabe_Telefon_Arbeit.Text:=inttostr(Unit_Main.Datensatz.Telefon_Arbeit);
                                                        Edt_Eingabe_Telefon_Mobil.Text:=inttostr(Unit_Main.Datensatz.Telefon_Mobil);
                                                        Edt_Eingabe_Telefon_Privat.Text:=inttostr(Unit_Main.Datensatz.Telefon_Privat);
                                                        Edt_Eingabe_Vorname.Text:=Unit_Main.Datensatz.Vorname;
                                                        Edt_Eingabe_AIM.Text:=Unit_Main.Datensatz.AIM;
                                                        Edt_Eingabe_ICQ.Text:=Unit_Main.Datensatz.ICQ;
                                                        Edt_Eingabe_Mail_1.Text:=Unit_Main.Datensatz.Mail_1;
                                                        Edt_Eingabe_Mail_2.Text:=Unit_Main.Datensatz.Mail_2;
                                                        Edt_Eingabe_MSN.Text:=Unit_Main.Datensatz.MSN;
                                                        Edt_Eingabe_WWW.Text:=Unit_Main.Datensatz.www;
                                                        Edt_Eingabe_Yahoo.Text:=Unit_Main.Datensatz.Yahoo;
                                        end;
        //except
                Application.MessageBox('Fehler beim öffnen!','Dateifehler',MB_OK);
        //end;

end;

was mache ich falsch ?? Wo ist der Fehler ?
  Mit Zitat antworten Zitat