Entwickler-Ecke
Sonstiges (Delphi) - Ich kapier es nicht mit dem Highscore HELP!!!
BlackPhantom - Mo 03.03.03 22:21
Titel: Ich kapier es nicht mit dem Highscore HELP!!!
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? :cry:
Ich danke jedem für jegliche Hilfe
MFG
BlackPh
Delete - Mo 03.03.03 22:24
Schon mal auf die Idee gekommen deinen Versuch hier zu posten (mit fehlermeldungen bitte)?
BlackPhantom - 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
Quelltext
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 - 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
BlackPhantom - 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 :roll:
Anonymous - Di 04.03.03 00:15
Hier paar Punkte die mir aufgefallen sind. Ob sie allerdings der Fehler sind weiß ich nicht.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| type TForm1 = class(TForm) ... procedure FormDestroy(Sender: TObject); procedure Positionieren(datensatz: integer); // <<< procedure Button1Click(Sender: TObject); ... private { Private-Deklarationen } public { Public-Deklarationen } end; |
Was von dir ist sollte in Private oder Public:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| type TForm1 = class(TForm) ... procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); ... private { Private-Deklarationen } procedure Positionieren(datensatz: integer); // <<< public { Public-Deklarationen } end; |
Du solltes auch Pfade angeben. Guck dir dazu auch die Seite an:
http://www.delphi-forum.de/viewtopic.php?t=7546
Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.FormCreate(Sender: TObject); begin AssignFile(datei,'adressen.tft'); if FileExists('adressen.tft') then ReSet(datei) else ReWrite(datei);
end; |
z.B.
Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.FormCreate(Sender: TObject); begin AssignFile(datei,'c:\adressen.tft'); if FileExists('c:\adressen.tft') then ReSet(datei) else ReWrite(datei);
end; |
Ansonsten solltest du noch sagen bei welchen Button die Fehlermeldung kommt,
Aya - 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
Anonymous - 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 - 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
Anonymous - 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 - 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?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!