Danke ihr beiden.
Jetzt bin ich aber noch etwas am Grübeln. Im Moment fliegt das ja noch alles etwas unkontrolliert umher. Meine Idee ist jetzt eine Klasse, die einen großen Baum abbildet, der in sich die Zweige Way, Relation, Node und POI trägt und dann mit diesem während des ganzen Import-Vorgangs zu arbeiten.
In etwa so:
Delphi-Quellcode:
TORPTree = class(TObject)
private
//Meta
fVersion: String;
fGenerator: String;
//Elements
fWays: TObjectList;
fNodes: TObjectList;
fRelations: TObjectList;
fPOI: TObjectList;
//Misc. Functions
function GetWayNode(ID: String): TORPNode;
published
//Meta
property Version: String read fVersion;
property Generator: String read fGenerator;
//Elements
property Ways: TObjectList read fWays;
property Nodes: TObjectList read fNodes;
property Relations: TObjectList read fRelations;
property POI: TObjectList read fPOI;
//Add Special Items
procedure AddWayToList(Way: TORPWay);
procedure AddNodeToList(Node: TORPNode);
procedure AddRelationToList(Relation: TORPRelation);
procedure AddPOIToList(POI: TORPPOI);
//Delete Special Items
function DeleteWayFromList(ID: String): Boolean;
function DeleteNodeFromList(ID: String): Boolean;
function DeleteRelationFromList(ID: String): Boolean;
function DeletePOIFromList(ID: String): Boolean;
Constructor Create;
Destructor Destroy;
end;
In der Extractor-Klasse erzeuge ich diese Klasse einmal und kann dann mit ihr arbeiten. Die TObjectList möchte vermutlich gerne eine Klasse haben, weswegen ich bspw. aus dem TORPNode-Record eine Klasse mit Constructor und Destructor, abgeleitet von TObject, machen müsste, oder?