AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String Formatierung

Ein Thema von Wishmaster · begonnen am 11. Jun 2008 · letzter Beitrag vom 15. Jun 2008
Antwort Antwort
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#1

Re: String Formatierung

  Alt 14. Jun 2008, 13:02
Hallo,

das geht auch mit benannten Variablen:

Delphi-Quellcode:
function Substitute(const template: string; info: TStrings): string;
var
  iNext, iPos, iLen: Integer;
  bName: Boolean;
  s: string;
begin
  Result := '';
  iPos := 1;
  bName := False;
  while iPos <= Length(template) do
  begin
    iNext := {StrUtils.}PosEx('%', template, iPos);
    iLen := {Math.}IfThen(iNext = 0, Succ(Length(template)) - iPos, iNext - iPos);
    s := Copy(template, iPos, iLen);
    iPos := IfThen(iNext = 0, Succ(Length(template)) {0}, Succ(iNext)); // EDIT
    if bName then
      if s = ''
        then Result := Result + '%'
        else Result := Result + info.values[s]
      else Result := Result + s;
    bName := not bName;
  end;
end;

// Test
procedure TDemoForm.ButtonClick(Sender: TObject);
var
  info: TStrings;
begin
  info := TStringList.Create;
  info.Values['artist'] := 'Don Robertson';
  info.Values['title'] := 'The Happy Whistler';
  Edit.Text := Substitute('%artist% - %title%', info);
  info.Free;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz