Ich schreib jetzt einfach mal eine passende Klassenstruktur hin:
TTown: Repräsentiert eine Stadt
TGood: Repräsentiert eine Ware
Delphi-Quellcode:
type
TTown = class
Name: String;
Production, PurchasePrices, SalePrices: array of Integer;
end;
TGood = class
ID, PictureID: Integer;
Name: String;
end;
In TTown.Production[I] steht dann die Produktion der Ware mit der ID "I" in einer Zeiteinheit, in TTown.PurchasePrices bzw. SalePrices die Einkaufs/Verkaufspreise der Ware mit der ID "I".
Die Arrays müssen beim Erzeugen der Klassen dann immer gesetzt werden (setlength()), das kann evtl. auch der Konstruktor übernehmen.
Die Güter könnten in einem array of TGood; gespeichert werden, das am Anfang aus einer Datei geladen wird - ein Record-File, das per TFileStream geladen und gespeichert wird, bietet sich hier an.
Die Städte kann man nicht so laden, weil sie dynamische Arrays enthalten. Da muss man sich dann etwas anderes überlegen.