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: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: 355: 356: 357: 358: 359: 360: 361: 362: 363: 364: 365: 366: 367: 368: 369: 370: 371: 372: 373: 374: 375: 376: 377: 378: 379: 380: 381: 382: 383: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411: 412: 413: 414: 415: 416: 417: 418: 419: 420: 421:
| nit UHaupt;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, Grids;
type TFKegel = class(TForm) EditName: TEdit; EditVNAme: TEdit; EditGd: TEdit; Edit1Wk: TEdit; Edit2Wk: TEdit; Edit3Wk: TEdit; MainMenu1: TMainMenu; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; SGAusgabe: TStringGrid; Label9: TLabel; EditSuche: TEdit; Datei1: TMenuItem; Anlegen1: TMenuItem; Neuanlegen1: TMenuItem; Ausgabe1: TMenuItem; sortiertnach1: TMenuItem; Name1: TMenuItem; Vorname1: TMenuItem; Geburtsdatum1: TMenuItem; Gesamtpunktzahl1: TMenuItem; Datenstze1: TMenuItem; Suchenach1: TMenuItem; Name2: TMenuItem; Vorname2: TMenuItem; Lschen1: TMenuItem; Korrigieren1: TMenuItem; BBest: TButton; unsortiert1: TMenuItem; Hilfe1: TMenuItem; WiebenutzeichdiesesProgramm1: TMenuItem; EditDk: TEdit; Label10: TLabel; Label11: TLabel; procedure FormCreate(Sender: TObject); procedure Anlegen1Click(Sender: TObject); procedure Neuanlegen1Click(Sender: TObject); procedure BBestClick(Sender: TObject); procedure unsortiert1Click(Sender: TObject); procedure Name1Click(Sender: TObject); procedure Vorname1Click(Sender: TObject); procedure Name2Click(Sender: TObject); procedure Vorname2Click(Sender: TObject); procedure Korrigieren1Click(Sender: TObject); procedure Lschen1Click(Sender: TObject); private public end;
var FKegel: TFKegel;
implementation
{$R *.DFM} TYPE Tdatensatz = RECORD nname:string[20]; Vname:string[20]; Gd:string[10]; einsWk:integer; zweiWk:integer; dreiWk:integer; GPkte:integer; end; var datei:FILE of TDatensatz; satz:Array[1..100] of Tdatensatz; Hilf:Tdatensatz; i,j,x,anz:integer; Snname:string; SVname:string; SGd:string; GPkte:Integer;
procedure TFKegel.FormCreate(Sender: TObject); begin i:=1; SGAusgabe.cells[0,0]:='Nr.'; SGAusgabe.cells[1,0]:='Name'; SGAusgabe.cells[2,0]:='Vorname'; SGAusgabe.cells[3,0]:='Geburtsdatum'; SGAusgabe.cells[4,0]:='1. Wk'; SGAusgabe.cells[5,0]:='2. Wk'; SGAusgabe.cells[6,0]:='3. Wk'; end;
procedure TFKegel.Anlegen1Click(Sender: TObject); begin AssignFile(datei,'Mitglieder.dat'); Rewrite(datei); CloseFile(datei); end;
procedure TFKegel.Neuanlegen1Click(Sender: TObject); begin Fkegel.close; end;
procedure TFKegel.BBestClick(Sender: TObject); begin AssignFile(datei,'Mitglieder.dat'); Reset(datei); Seek(datei,Filesize(datei)); satz[i].nname:=editName.text; satz[i].vname:=editVname.text; satz[i].Gd:=editGd.text; satz[i].einsWk:=strtoint(edit1wk.text); satz[i].zweiWk:=strtoint(edit2wk.text); satz[i].dreiWk:=strtoint(edit3wk.text); Write(datei,satz[i]);
EditVname.clear; EditName.clear; Editgd.clear; Edit1WK.clear; Edit2WK.clear; Edit3WK.clear; Editname.setfocus;
CloseFile(datei); end;
procedure TFKegel.unsortiert1Click(Sender: TObject); begin AssignFile(datei,'Mitglieder.dat'); Reset(datei); i:=1; While Not EOF(datei) Do begin Read(Datei,satz[i]); sgausgabe.cells[1,i]:=satz[i].nname; sgausgabe.cells[2,i]:=satz[i].vname; sgausgabe.cells[3,i]:=satz[i].gd; sgausgabe.cells[4,i]:=FormatFloat('0.',satz[i].einswk); sgausgabe.cells[5,i]:=FormatFloat('0.',satz[i].zweiwk); sgausgabe.cells[6,i]:=FormatFloat('0.',satz[i].dreiwk); sgausgabe.cells[0,i]:=FormatFloat('0.',i); I:=i+1; end; sgausgabe.rowcount:=Filesize(datei)+1; CloseFile(datei); end;
procedure TFKegel.Name1Click(Sender: TObject); begin AssignFile(Datei,'Mitglieder.dat'); Reset(Datei); For i:=1 To FileSize(datei) do Read(Datei,Satz[i]);
For J:=FileSize(datei)-1 downto 1 Do For i:=1 To j Do If Satz[i].nname>Satz[i+1].nname Then begin Hilf:=satz[i]; satz[i]:=satz[i+1]; satz[i+1]:=Hilf; end;
anz:=Filesize(Datei); Rewrite(Datei);
For i:=1 to anz do write(Datei,satz[i]);
CloseFile(datei); Reset(datei); i:=1; While Not EOF(datei) Do begin Read(Datei,satz[i]); sgausgabe.cells[1,i]:=satz[i].nname; sgausgabe.cells[2,i]:=satz[i].vname; sgausgabe.cells[3,i]:=satz[i].gd; sgausgabe.cells[4,i]:=FormatFloat('0.',satz[i].einswk); sgausgabe.cells[5,i]:=FormatFloat('0.',satz[i].zweiwk); sgausgabe.cells[6,i]:=FormatFloat('0.',satz[i].dreiwk); sgausgabe.cells[0,i]:=FormatFloat('0.',i); I:=i+1; end; CloseFile(Datei); end;
procedure TFKegel.Vorname1Click(Sender: TObject); begin AssignFile(Datei,'Mitglieder.dat'); Reset(Datei); For i:=1 To FileSize(datei) do Read(Datei,Satz[i]);
For J:=FileSize(datei)-1 downto 1 Do For i:=1 To j Do If Satz[i].vname>Satz[i+1].vname Then begin Hilf:=satz[i]; satz[i]:=satz[i+1]; satz[i+1]:=Hilf; end;
anz:=Filesize(Datei); Rewrite(Datei);
For i:=1 to anz do write(Datei,satz[i]);
CloseFile(datei); Reset(datei); i:=1; While Not EOF(datei) Do begin Read(Datei,satz[i]); sgausgabe.cells[1,i]:=satz[i].nname; sgausgabe.cells[2,i]:=satz[i].vname; sgausgabe.cells[3,i]:=satz[i].gd; sgausgabe.cells[4,i]:=FormatFloat('0.',satz[i].einswk); sgausgabe.cells[5,i]:=FormatFloat('0.',satz[i].zweiwk); sgausgabe.cells[6,i]:=FormatFloat('0.',satz[i].dreiwk); sgausgabe.cells[0,i]:=FormatFloat('0.',i); I:=i+1; end;
CloseFile(Datei); end;
procedure TFKegel.Name2Click(Sender: TObject); begin For i:=1 To i Do begin Sgausgabe.cells[0,i]:=''; Sgausgabe.cells[1,i]:=''; Sgausgabe.cells[2,i]:=''; Sgausgabe.cells[3,i]:=''; Sgausgabe.cells[4,i]:=''; Sgausgabe.cells[5,i]:=''; Sgausgabe.cells[6,i]:=''; end; snname:=editsuche.text; AssignFile(datei,'Mitglieder.dat'); Reset(datei); i:=1; While not EOF(datei) Do begin Read(Datei,satz[i]); If snname=satz[i].nname Then begin sgausgabe.cells[1,i]:=satz[i].nname; sgausgabe.cells[2,i]:=satz[i].vname; sgausgabe.cells[3,i]:=satz[i].gd; sgausgabe.cells[4,i]:=FormatFloat('0.',satz[i].einswk); sgausgabe.cells[5,i]:=FormatFloat('0.',satz[i].zweiwk); sgausgabe.cells[6,i]:=FormatFloat('0.',satz[i].dreiwk); sgausgabe.cells[0,i]:=FormatFloat('0.',i); i:=i+1; end; end; CloseFile(datei);
end;
procedure TFKegel.Vorname2Click(Sender: TObject); begin For i:=1 To i Do begin Sgausgabe.cells[0,i]:=''; Sgausgabe.cells[1,i]:=''; Sgausgabe.cells[2,i]:=''; Sgausgabe.cells[3,i]:=''; Sgausgabe.cells[4,i]:=''; Sgausgabe.cells[5,i]:=''; Sgausgabe.cells[6,i]:=''; end; svname:=editsuche.text; AssignFile(datei,'Mitglieder.dat'); Reset(datei); i:=1; While not EOF(datei) Do begin Read(Datei,satz[i]); If svname=satz[i].vname Then begin sgausgabe.cells[1,i]:=satz[i].nname; sgausgabe.cells[2,i]:=satz[i].vname; sgausgabe.cells[3,i]:=satz[i].gd; sgausgabe.cells[4,i]:=FormatFloat('0.',satz[i].einswk); sgausgabe.cells[5,i]:=FormatFloat('0.',satz[i].zweiwk); sgausgabe.cells[6,i]:=FormatFloat('0.',satz[i].dreiwk); sgausgabe.cells[0,i]:=FormatFloat('0.',i); i:=i+1; end; end; CloseFile(datei);
end;
procedure TFKegel.Korrigieren1Click(Sender: TObject); begin
x:=strtoint(editdk.text); AssignFile(Datei,'Mitglieder.dat'); Reset(Datei); Seek(datei,(x-1)); satz[x-1].nname:=editName.text; satz[x-1].vname:=editVname.text; satz[x-1].Gd:=editGd.text; satz[x-1].einsWk:=strtoint(edit1wk.text); satz[x-1].zweiWk:=strtoint(edit2wk.text); satz[x-1].dreiWk:=strtoint(edit3wk.text); Write(datei,satz[x-1]); closeFile(datei);
AssignFile(Datei,'Mitglieder.dat'); Reset(Datei); Seek(datei,(x-1));
While Not EOF(datei) Do begin Read(Datei,satz[x-1]); sgausgabe.cells[1,x]:=satz[x-1].nname; sgausgabe.cells[2,x]:=satz[x-1].vname; sgausgabe.cells[3,x]:=satz[x-1].gd; sgausgabe.cells[4,x]:=FormatFloat('0.',satz[x-1].einswk); sgausgabe.cells[5,x]:=FormatFloat('0.',satz[x-1].zweiwk); sgausgabe.cells[6,x]:=FormatFloat('0.',satz[x-1].dreiwk); sgausgabe.cells[0,x]:=FormatFloat('0.',i); end; CloseFile(datei);
AssignFile(datei,'Mitglieder.dat'); Reset(datei); i:=1; While Not EOF(datei) Do begin Read(Datei,satz[i]); sgausgabe.cells[1,i]:=satz[i].nname; sgausgabe.cells[2,i]:=satz[i].vname; sgausgabe.cells[3,i]:=satz[i].gd; sgausgabe.cells[4,i]:=FormatFloat('0.',satz[i].einswk); sgausgabe.cells[5,i]:=FormatFloat('0.',satz[i].zweiwk); sgausgabe.cells[6,i]:=FormatFloat('0.',satz[i].dreiwk); sgausgabe.cells[0,i]:=FormatFloat('0.',i); I:=i+1; end; sgausgabe.rowcount:=Filesize(datei)+1; CloseFile(datei);
end;
procedure TFKegel.Lschen1Click(Sender: TObject); var tempdatei: File OF Tdatensatz;
begin
x:=strtoint(editdk.text); AssignFile(Datei,'Mitglieder.dat'); Reset(Datei);
Assignfile(tempdatei,'temp.dat'); Rewrite(tempdatei); Read(datei,satz[x-1]); while not EOF (datei) do begin read(datei,satz[i]); if x<>i then begin i:=filepos(tempdatei); write(tempdatei,satz[i]); end; end; closefile(datei); closefile(tempdatei); erase(datei); rename(tempdatei,'Mitglieder.dat'); end;
end. |