Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme beim lesen einer typiesierten Datei (https://www.delphipraxis.net/112680-probleme-beim-lesen-einer-typiesierten-datei.html)

Newbi 25. Apr 2008 06:56


Probleme beim lesen einer typiesierten Datei
 
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 ?

Klaus01 25. Apr 2008 07:13

Re: Probleme beim lesen einer typiesierten Datei
 
Vielleich magst Du uns noch mitteilen was nicht geht?
Fehlermeldung?

Grüße
Klaus

Bernhard Geyer 25. Apr 2008 07:13

Re: Probleme beim lesen einer typiesierten Datei
 
Zitat:

Zitat von Newbi
was mache ich falsch ?? Wo ist der Fehler ?

Welcher Fehler? Was wird erwartet? Was geschieht?

Und bitte pass deine Formatierung (Einrückung) an. So ist der Code fast unlesbar!

messie 25. Apr 2008 07:15

Re: Probleme beim lesen einer typiesierten Datei
 
Noch ein Hinweis: Wenn Du die Datei im Schreibmodus öffnest, sollte der read-Befehl schiefgehen.

Grüße, Messie

Luckie 25. Apr 2008 07:53

Re: Probleme beim lesen einer typiesierten Datei
 
Und wie sieht der Record aus?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 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