Thema: Delphi simple for-schleife

Einzelnen Beitrag anzeigen

Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#10

Re: simple for-schleife

  Alt 1. Jun 2007, 22:57
Zitat von warefare:
Delphi-Quellcode:
for i:= 0 to length(text) do

begin

if (text[i] = 'i') and (text[i+1] = 'm') and (text[i+2] = 'g') then begin

position_g := PosEx('img', text, i);
  ShowMessage('Gefunden an Stelle: ' + inttostr(position_g) );
Lass mich raten: i ist immer gleich position_g. Warum noch PoSex? Die position hast du mit dem i doch schon!

Ausserdem sehe ich das nicht so, dass das ganz suppi funzt:

text :='i';
Wenn du jetzt deinen Algo darauf anwendest, sieht das beim ersten Zeichen so aus:
if (text[1] = 'i') and (text[2] = 'm') and (text[3] = 'g') then begin
--> AccessViolation!

ultimativ wäre wohl:

Delphi-Quellcode:
i := pos('img',text);
while i>0 do
begin
  memo1.lines.add(inttostr(i));
  i := posex('img',text,i+1);
end;
Also fast genau so wie NamenLozer bereits sagte. Das ist ausserdem deutlich schneller als deine Variante, da die Borlandentwickler die pos(ex) Funktionen direkt in Assembler gecodet haben und sich dabei sehr viele Gedanken gemacht haben, wie das ganze am schnellsten ist .
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat