Einzelnen Beitrag anzeigen

marabu

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

Re: Text an bestimmter Stelle splitten

  Alt 18. Apr 2006, 20:21
Hi.

Wenn du mit den einzelnen Zeilen eines Memos arbeitest, dann ist PosEx() wohl fehl am Platz.

Delphi-Quellcode:
var
  Form1: TForm1;

implementation

{$R *.dfm}

function After(const S, Pattern: String): String;
var
  i: Integer;
begin
  i := Pos(Pattern, S);
  if i = 0
    then Result := ''
    else Result := Copy(S, i + Length(Pattern), Length(S));
end;

function Before(const S, Pattern: String): String;
var
  i: Integer;
begin
  i := Pos(Pattern, S);
  if i = 0
    then Result := S
    else Result := Copy(S, 1, Pred(i));
end;

procedure MakeItems(s: TStrings; li: TListItems);
var
  i: Integer;
begin
  li.BeginUpdate;
  li.Clear;
  for i := 0 to Pred(s.Count) do
    with li.Add do
    begin
      Caption := Before(s[i], ' ');
      SubItems.Add(After(s[i], ' '));
    end;
  li.EndUpdate;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Screen.Cursor := crHourGlass;
  try
    MakeItems(Memo.Lines, ListView1.Items);
  finally
    Screen.Cursor := crDefault;
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat