Einzelnen Beitrag anzeigen

marabu

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

Re: ganz simpler aufruf aber compiler meldet fehler...

  Alt 15. Nov 2006, 06:59
Guten Morgen.

Memo4.Lines.Strings[i] ist das gleiche wie Memo4.Lines[i]. In jedem Fall ist es eine property und kann nicht als Variable an die Prozedur Delete() übergeben werden - wie Julian dir schon geschrieben hat. Wenn du eine Position öfter verwendest, dann solltest du sie in einer Variablen zwischenspeichern und sie nicht ständig neu suchen lassen. Und wenn du deinen Code funktional gliederst, hast du mehr Spaß am Programmieren:

Delphi-Quellcode:
procedure ExtractUrls(s, urls: TStrings; prefix: String);
var
  i, iStart, iStop: Integer;
  line: String;
begin
  for i := 0 to Pred(s.Count) do
  begin
    line := s[i];
    iStart := Pos(prefix, line);
    if iStart > 0 then
    begin
      iStop := PosEx(' ', line, iStart + Length(prefix));
      if iStop = 0
        then urls.Add(Copy(line, iStart, MaxInt))
        else urls.Add(Copy(line, iStart, iStop - iStart));
    end;
  end;
end;
Verwenden kannst du diese Prozedur in deinem Fall so:

Delphi-Quellcode:
begin
  ExtractUrls(Memo4.Lines, Memo3.Lines, 'http://lix.in/');
end;
Grüße vom marabu
  Mit Zitat antworten Zitat