Als erstes solltest du eine passende Speicherform für die Programmlaufzeit festlegen. Z.B.
Code:
type
TNode = record
key,
value
: string;
end;
Dann wäre es sinnvoll, wenn du alle keys in einem array speicherst, so dass du damit schneller arbeiten kannst. Das ganze würde ich persönlich in eine Klasse packen, die z.B. so aussehen könnte:
Code:
type
TStringArray = array of string;
TextList = class
private:
list
: array of TNode;
keyList
: array of string;
public:
constructor Create;
function getKeys : TStringArray; // get all available keys (e.g. to fill a TListView)
function getValues(const key : string) : TStringArray; // get all texts with a given key (e.g. to fill a TListView)
procedure addNode(node : TNode);
procedure loadFromFile(const file : string);
procedure saveToFile(const file : string);
end;
Die Methoden Namen sollten relativ selbstsagend sein. Bei den Arrays handelt es sich um dynamische Arrays, die mit Länge 0 initialisiert werden müssen. Danach einfach immer beim hinzufügen um 1 vergrößern und dem letzten Array Feld den neuen Wert zuweisen.
Das Speichern/Laden nimmst du im einfachsten Fall mit INI File - kann alles was du brauchst und ist auch menschenlesbar. Das braucht kaum erklärung. Einfach googeln. Alles andere wäre für einen Anfänger vllt etwas overkill.
Das ganze kannst du dann ausbauen mit Tests auf doppelte Einträge, oder eine ID in die Nodes einfügen, so dass geziehlt doppelte Einträge möglich sind.
Hinzufügen kann man dann noch Methoden zum Ändern des Textes oder des Keys einer Node. Und das Löschen von Nodes ist sicherlich auch noch mal interessant. Kann man einiges lernen, mit dieser Anwendung.
So, jezz überlass ich dir den Hauptteil der Arbeit: Das Ausprogrammieren