Zur Not kannst du auch erst mal beim Record bleiben, dann mußt du dein Programm nicht komplett neu machen. Records sind aus mehren Gründen allerdings nicht zu empfehlen. Der String[100] kann auch irgendwann mal ein string werden, wenn du satt typisierte Dateien (Annahme) z.B. einen FileStream oder zur Not auch eine MemIniFile verwendest.
Delphi-Quellcode:
TEmployees = class
private
function GetCount: integer;
procedure SetCount(const Value: integer);
public
Items: array of TEmployee;
property Count: integer read GetCount write SetCount;
function Add(const Value: TEmployee): integer;
procedure Delete(const Index: integer);
procedure Assign(Value: TEmployees);
procedure Clear;
procedure LoadFromFile(const FileName: string);
procedure SaveToFile(const FileName: string);
destructor Destroy; override;
end;
{ TEmployees }
destructor TEmployees.Destroy;
begin
Clear;
inherited;
end;
function TEmployees.GetCount: integer;
begin
Result := Length(Items);
end;
procedure TEmployees.SetCount(const Value: integer);
begin
SetLength(Items, Value);
end;
procedure TEmployees.Clear;
begin
SetCount(0);
end;
function TEmployees.Add(const Value: TEmployee): integer;
begin
Result := Count;
SetCount(Result + 1);
Items[Result] := Value;
end;
procedure TEmployees.Delete(const Index: integer);
var
I: integer;
begin
for I := Index to Count - 2 do
Items[I] := Items[I + 1];
SetCount(Count - 1);
end;
procedure TEmployees.Assign(Value: TEmployees);
var
I: integer;
begin
SetCount(Value.Count);
for I := 0 to Count - 1 do
Items[I] := Value.Items[I];
end;
procedure TEmployees.LoadFromFile(const FileName: string);
begin
end;
procedure TEmployees.SaveToFile(const FileName: string);
begin
end;