Falls ich alles richtig verstanden habe,
hast Du einen Text mit beliebig vielen, verschiedenen Platzhaltern, von denen manche auch öfters vorkommen können und die durch Einträge aus einer Datenbank ersetzt werden sollen.
Hier ist eine kleine Funktion, die eine Ersetzung innerhalb eines Strings vornimmt.
Delphi-Quellcode:
Function FindAndReplace (var InSource : String; ToReplace, ToInsert : String) : Boolean;
var
AtPosition, SizeToReplace : Integer;
begin
Result := False;
AtPosition := Pos(ToReplace, inSource);
SizeToReplace := Length(ToReplace);
if AtPosition > 0 then // Erstes Zeichen = 1, es kann aber auch bei 0 eingefügt werden.
begin
Delete (InSource, AtPosition, SizeToReplace); // Den Platzhalter löschen
Insert (ToInsert, InSource, AtPosition); // An seiner Stelle neuen Text einsetzen;
Result := True;
end;
end;
Der Aufruf könnte wie folgt erfolgen:
Delphi-Quellcode:
while FindAndReplace (Source,Replace,Insert) do // Schleife damit alle Vorkommnisse
// des Platzhalters gefunden werden gefunden werden
begin
// do nothing
end;
Memo1.Lines.Add (Source);
wobei die Variablen Source, Replace und Insert aus der Datenbank eingelesen werden würden.
Mit sonnigen Grüßen
S.