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:
| procedure TSpieldefinition.FormCreate(Sender: TObject); begin AssignFile(FSpDaten,'Spielerdaten.kpt'); if FileExists('Spielerdaten.kpt') then ReSet(FSpDaten) else ReWrite(FSpDaten); end;
procedure TSpieldefinition.FormDestroy(Sender: TObject); begin closeFile(FSpDaten); end;
procedure TSpieldefinition.positionieren(datensatz:integer); var aktDS: TSpielerdaten; begin if(datensatz<0) or (datensatz>=FileSize(FSpDaten)) then exit else begin seek(FSpDaten, datensatz); read(FSpDaten,aktDS); e_spielerdaten_name.text:= aktDS.name; e_spielerdaten_vorname.text:= aktDS.Vorname; e_spielerdaten_mannschaft.text:= aktDS.Mannschaft; e_spielerdaten_strasse.text:= aktDS.Strasse; e_spielerdaten_plz.text:= aktDS.plz; e_spielerdaten_ort.text:= aktDS.ort; e_spielerdaten_land.text:= aktDS.land; e_spielerdaten_telefon.text:= aktDS.telefon; e_spielerdaten_alter.text:= aktDS.alter; end; end;
procedure TSpieldefinition.b_Spielerdaten_zurueckClick(Sender: TObject); begin positionieren(FilePos(FSpDaten)-2); end;
procedure TSpieldefinition.b_Spielerdaten_vorClick(Sender: TObject); begin positionieren(FilePos(FSpDaten)); end;
procedure TSpieldefinition.b_Spielerdaten_NeuerDSClick(Sender: TObject); var Buffer: array[0..BufferSize -1] of TSpielerdaten; i, p: integer; begin Seek(FSpDaten,0); p:=0; while not eof(FSpDaten) do begin Read(FSpDaten,Buffer[p]); p:=p+1; end; CloseFile(FSpDaten); Buffer[p+1].Name := ''; Buffer[p+1].Vorname := ''; Buffer[p+1].Mannschaft := ''; Buffer[p+1].Strasse := ''; Buffer[p+1].plz := ''; Buffer[p+1].ort := ''; Buffer[p+1].land := ''; Buffer[p+1].telefon := ''; Buffer[p+1].alter := ''; ReWrite(FSpDaten); for i:=0 to p do Write(FSpDaten,Buffer[i]); positionieren(FileSize(FSpDaten)-1); end;
procedure TSpieldefinition.b_Spielerdaten_loeschenClick(Sender: TObject); var Buffer: array[0..BufferSize -1] of TSpielerdaten; i, max: integer; StartRecord, EndRecord: integer; begin //Cursor vor akt. DS Seek(FSpDaten,FilePos(FSpDaten)-1); StartRecord:= FilePos(FSpDaten)+1; EndRecord:= FileSize(FSpDaten); while StartRecord < EndRecord do begin max:= BufferSize; if Max > EndRecord - StartRecord then Max := EndRecord - StartRecord; Seek(FSpDaten, StartRecord); //DS lesen for i:=0 to Max -1 do read(FSpDaten, Buffer[i]); Seek(FSpDaten, StartRecord-1); //DS zurückschreiben for i:=0 to Max -1 do Write(FSpDaten, Buffer[i]); end; //Datei abschneiden Truncate(FSpDaten); Positionieren(StartRecord-1); end;
procedure TSpieldefinition.b_Spielerdaten_speichernClick(Sender: TObject); var DS: TSpielerdaten; nr: integer; begin //Cursor vor akt. Datensatz if FilePos(FSpDaten)-1 < 0 then Seek(FSpDaten,0) else Seek(FSpDaten, FilePos(FSpDaten)-1); nr:=FilePos(FSpDaten); DS.Name:= e_spielerdaten_name.Text; DS.vorname:= e_spielerdaten_vorname.Text; DS.mannschaft:= e_spielerdaten_mannschaft.Text; DS.strasse:= e_spielerdaten_strasse.Text; DS.plz:= e_spielerdaten_plz.Text; DS.ort:= e_spielerdaten_ort.Text; DS.land:= e_spielerdaten_land.Text; DS.telefon:= e_spielerdaten_telefon.Text; DS.alter:= e_spielerdaten_alter.Text; //speichern des Datensatzes write(FSpDaten,DS); positionieren(nr); end; |