Hast Du denn schon einen Algorithmus für die Namensumwandlung?
Wenn nein, schau Dir mal bitte
Delphi-Quellcode:
Delphi-Syntax:
function SoundExInt(const AText: string; ALength: TSoundExIntLength = 4): Integer;
an. Ist (bei Delphi 7) in StrUtils zu finden.
Wäre für Dich dann eventuell so zu lösen:
IndexWert := (10000 * Nummer) + SoundExInt(Name,4);
Die 1000 als Multiplikator dürfte zu klein sein, Du möchtest ja ein Ergebnis in der Form
Code:
99Hans
99Paul
99Paul(line)
haben, also sechsstellig. Aber bedenke, so wie das hier jetzt aussieht, reicht es nur für Indexwerte von 0 bis 99. Bei größeren Indexwerten musst Du die Berechnung entsprechend anpassen. Und durch die Kürzung der Namen muss nicht zwingend eine bessere Sortierung herauskommen. Paul und Pauline werden in diesem Beispiel nicht mehr unterscheidbar sein, Sortierung also eher zufällig.
Und durch die SoundEx-Funktion werden die Meiers und Maiers und Mayers und Meyers... alle gleich.