Registriert seit: 2. Apr 2008
15 Beiträge
|
Probleme beim lesen einer typiesierten Datei
25. Apr 2008, 07: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 ?
|
|
Zitat
|