Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Repeat oder While? (https://www.delphipraxis.net/19901-repeat-oder-while.html)

silentAMD 10. Apr 2004 16:32


Repeat oder While?
 
Hallo,
ich habe mal gehört, dass es geschwindigkeitsunterschiede zwischen repeat und while gibt, welche jedoch nicht.

welches von beiden sollte man nehmen? beispielsweise bei dateisuchen/ordner einlesen?

Chewie 10. Apr 2004 16:34

Re: Repeat oder While?
 
Ich kann mir nicht vorstellen, dass es bei beiden Geschwindigkeitsunterschiede gibt. Der einzige Unterschied zwischen den beiden ist, dass die repeat-Schleife mindestens 1 mal ausgeführt wird, die while-Schleife jedoch mindestesn 0 mal.

Alfons_G 11. Apr 2004 11:11

Re: Repeat oder While?
 
Welche Schleife man nimmt, hängt davon ab, ob die Abbruchbedingung schon vor der Schleife feststeht, oder erst innerhalb der Schleife ermittelt werden kann.
Beim Auslesen von Ordnern z.B. wird man while FindNext() verwenden, beim Abrufen von Datensätzen while not Dataset.Eof usw. Repeat ist dagegen angebracht, wenn sicher zumindest ein Durchlauf erfolgen muß und dabei erst festgestellt wird, ob die Abbruchbedingung erfüllt ist.

:coder:

sakura 11. Apr 2004 11:13

Re: Repeat oder While?
 
Zitat:

Zitat von Alfons_G
Beim Auslesen von Ordnern z.B. wird man while FindNext() verwenden

Gerade da macht es eigentlich keiner :mrgreen:

Delphi-Quellcode:
if FindFirst('C:\*.*', faAnyFile, SR) = 0 then
  repeat
    SR....
    ...
  until FindNext(SR) <> 0;
...:cat:...

MathiasSimmack 11. Apr 2004 11:15

Re: Repeat oder While?
 
Zitat:

Zitat von sakura
Gerade da macht es eigentlich keiner :mrgreen:

Ich schon. Alte Angewohnheit aus TurboPASCAL-Zeiten.

himitsu 11. Apr 2004 11:18

Re: Repeat oder While?
 
hm :gruebel:

aber bei
Delphi-Quellcode:
if FindFirst('C:\*.*', faAnyFile, SR) = 0 then
  while FindNext(SR) = 0
    SR....
    ...
  end;
wird doch der 1. Dateiname nicht mit ausgewertet.

MathiasSimmack 11. Apr 2004 11:20

Re: Repeat oder While?
 
So macht man das ja auch nicht. Ich schreib immer
Delphi-Quellcode:
res := FindFirst(...);
while(res = 0) do
begin
  { mach was damit }

  res := FindNext(ds);
end;

himitsu 11. Apr 2004 11:21

Re: Repeat oder While?
 
OK, mit 'ner Variable geht das auch :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz