| Autor |
Beitrag |
BlackPhantom
      
Beiträge: 144
Win 2000, Win XP, UNIX
D7 Prof, C, HTML, VB 5
|
Verfasst: Mo 03.03.03 22:21
Hi,
Folgende Situation:
Ich habe mir den Post von Cash zum Thema Highscore und die Antworten durchgelesen und den Link benutzt. Ich habe das Tutorial duchgearbeitet.
Doch....als ich fertig war und auf Speichern geklickt habe kam ein Fehler auf. Der tritt immer wieder auf wenn ich auf Speichern Klicke.....hat denn zum Geier keiner mal ne funktionierende Highscore-Form oder ne kleine Demo dazU?
Ich danke jedem für jegliche Hilfe
MFG
BlackPh
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 03.03.03 22:24
Schon mal auf die Idee gekommen deinen Versuch hier zu posten (mit fehlermeldungen bitte)?
|
|
BlackPhantom 
      
Beiträge: 144
Win 2000, Win XP, UNIX
D7 Prof, C, HTML, VB 5
|
Verfasst: Mo 03.03.03 22:30
Hier der Fehler:
E/A-Fehler 87.
Das sagt er mir wenn ich auf Speichern klicke.
Und hier mein Quellcode
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Button7: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Positionieren(datensatz: integer); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button7Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end;
type Adresse = record name: string[50]; strasse: string[100]; plz: integer; ort: string[50]; end;
var Form1: TForm1; var datei: file of Adresse;
const BufferSize = 32;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); begin AssignFile(datei,'adressen.tft'); if FileExists('adressen.tft') then ReSet(datei) else ReWrite(datei);
end;
procedure TForm1.FormDestroy(Sender: TObject); begin CloseFile(datei); end;
procedure TForm1.positionieren(datensatz: integer); var aktdatensatz: Adresse; begin if (datensatz<0) or (datensatz>=FileSize(datei)) then exit else begin seek(datei, datensatz); read(datei, aktdatensatz); edit1.text:=aktdatensatz.name; edit2.text:=aktdatensatz.strasse; edit3.text:=IntToStr(aktdatensatz.plz); edit4.text:=aktdatensatz.ort; end; end; procedure TForm1.Button1Click(Sender: TObject); begin positionieren(0); end;
procedure TForm1.Button2Click(Sender: TObject); begin positionieren(FilePos(datei)-2); end;
procedure TForm1.Button3Click(Sender: TObject); begin positionieren(FilePos(datei)); end;
procedure TForm1.Button4Click(Sender: TObject); begin positionieren(FileSize(datei)-1); end;
procedure TForm1.Button6Click(Sender: TObject); var Buffer: array[0..BufferSize - 1] of Adresse; i, p: Integer; StartRecord, EndRecord: Integer; Max: Integer; begin
Seek(Datei, FilePos(Datei)-1);
StartRecord := FilePos(Datei) + 1; EndRecord := FileSize(Datei);
while StartRecord < EndRecord do begin
Max := BufferSize; if Max > EndRecord - StartRecord then Max := EndRecord - StartRecord; Seek(Datei, StartRecord); for i := 0 to Max - 1 do Read(Datei, Buffer[i]);
Seek(Datei, StartRecord - 1); for i := 0 to Max - 1 do Write(Datei, Buffer[i]); inc(StartRecord); end;
Truncate(Datei); Positionieren(StartRecord-1);
end;
procedure TForm1.Button5Click(Sender: TObject); var Buffer: array[0..BufferSize - 1] of Adresse; i, p: integer; begin Seek(datei,0); p:=0; while not eof(datei) do begin Read(datei, Buffer[p]); inc(p); end; CloseFile(datei); Buffer[p+1].name:=''; Buffer[p+1].strasse:=''; Buffer[p+1].plz:=0; Buffer[p+1].ort:=''; ReWrite(datei); for i:=0 to p do write(datei, Buffer[i]);
positionieren(FileSize(datei)-1);
end;
procedure TForm1.Button7Click(Sender: TObject); var datensatz: Adresse; nr: integer; begin
Seek(Datei,FilePos(Datei)-1); nr:=FilePos(datei); datensatz.name:=Edit1.Text; datensatz.strasse:=Edit2.Text;
datensatz.plz:=StrToIntDef(Edit3.Text, -1);
datensatz.ort:=Edit4.Text; write(datei,datensatz); positionieren(nr);
end;
end. |
Kann jemand da den Fehler finden oder gar eine funktionierende Highscore zuschicken....meine E-Mail lautet:
Moderiert von Tino: E-Mailadresse entfernt. Antworten bitte hier ins Forum.
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Mo 03.03.03 23:19
Hi,
der fehler hat zu 99%iger ischerheit nix mit deinem Prog zu tun...
1.) Festplatte voll???
2.) Ist die Datei evtl. Schreibgeschützt??
Wenn beides nich is, kopier den gesammten Quelltext -> Neues Projekt und einfügen
Au'revoir,
Aya
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
BlackPhantom 
      
Beiträge: 144
Win 2000, Win XP, UNIX
D7 Prof, C, HTML, VB 5
|
Verfasst: Mo 03.03.03 23:34
Festplatte ist erst halbvoll....schreibgeschützt ist die Datei auch nicht...und ich habs mit nem neuen Project versucht genau der gleiche Fehler 
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Di 04.03.03 00:15
|
|
Aya
      
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Di 04.03.03 00:22
aaachsooo... haalt... *g*
Meinst du mit "als ich auf Speichern geklickt habe"... als du das DelphiProjekt speichern wolltest (hab ich angenommen), oder als du IN deinem Programm auf Speichern geklickt hast???
Au'revoir,
Aya
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Di 04.03.03 00:26
Kann es sein, daß du nur einen einzigen Record speichern willst? Wenn ja, dann würde ich dir raten das in einer Ini zu speichern. Ist viel leichter.
|
|
BlackPhantom 
      
Beiträge: 144
Win 2000, Win XP, UNIX
D7 Prof, C, HTML, VB 5
|
Verfasst: Di 04.03.03 00:28
Danke für den Link....ich hab doch gesagt wo und wann der Fehler auftritt und zwar wenn ich auf Speichern klicke das ist Button7. Und daran kann es nicht liegen, dass einiges nicht unter public steht ich probier es mal trotzdem aus :I
|
|
Popov
Gast
Erhaltene Danke: 1
|
Verfasst: Di 04.03.03 00:31
| BlackPhantom hat folgendes geschrieben: | | Danke für den Link....ich hab doch gesagt wo und wann der Fehler auftritt und zwar wenn ich auf Speichern klicke das ist Button7. Und daran kann es nicht liegen, dass einiges nicht unter public steht ich probier es mal trotzdem aus :I |
Woher soll einer wissen, daß Button7 bei dir der Speichern Button ist.
|
|
BlackPhantom 
      
Beiträge: 144
Win 2000, Win XP, UNIX
D7 Prof, C, HTML, VB 5
|
Verfasst: Di 04.03.03 15:35
Danke für die Aufmerksamkeit Popov..........
Meine Frage: wieso sollte es denn einfacher sein in einer InI abzuspeichern, als in einer anderen Form? Dürfte doch im Grunde keinen Unterschied machen.
Und wie kann man denn mehrere Records abspeichern?
|
|