Einzelnen Beitrag anzeigen

Sivale

Registriert seit: 7. Sep 2002
Ort: München
8 Beiträge
 
#4

Re: String zwische zwei Zeichen lesen

  Alt 8. Jun 2004, 11:07
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.
  Mit Zitat antworten Zitat