Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi for I := 1 to SL.Count do; oder for I := 0 to SL.Count -1 do (https://www.delphipraxis.net/41014-i-%3D-1-sl-count-do%3B-oder-i-%3D-0-sl-count-1-do.html)

Luckie 24. Feb 2005 16:29

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
Count = 5
Schleife von 0 bis Count-1:
0, 1, 2, 3, 4
Das sind bei mir fünf. Ihr müsst auch die null mitzählen!

Die Muhkuh 24. Feb 2005 16:30

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
Hi,

@jbp

jupp!

Genau das meine ich. Es sollen ja alle (!) Einträge durchlaufen werden und nicht der erste überprungen werden und dann erst durchlaufen ;-)


Also, wer hat nun eigentlich recht?

[edit]

@Luckie mach ich ja

[/edit]

Luckie 24. Feb 2005 16:32

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
Zitat:

Zitat von Spider
Es sollen ja alle (!) Einträge durchlaufen werden und nicht der erste überprungen werden und dann erst durchlaufen ;-)

Haben wir doch gerade erklärt: Der Erste Eintrag hat den Index 0, ergo muss man auch bei null angefangen werden zu zählen und bei Count-1 muss aufgehört werden. :roll:

Die Muhkuh 24. Feb 2005 16:33

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Spider
Es sollen ja alle (!) Einträge durchlaufen werden und nicht der erste überprungen werden und dann erst durchlaufen ;-)

Haben wir doch gerade erklärt: Der Erste Eintrag hat den Index 0, ergo muss man auch bei null anfangen werden zu zählen und bei Count-1 aufhören. :roll:

Das sage ich ja auch die ganze Zeit :roll: ;-)

Matze 24. Feb 2005 16:40

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
Zitat:

Zitat von Spider
Das sage ich ja auch die ganze Zeit :roll: ;-)

Ja ach ne, sollen wir dich nun loben? :mrgreen:

ibp 24. Feb 2005 16:40

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
Zitat:

Zitat von Spider
Jetzt wollte ich wissen, was nun richtig?

:? also doch nicht sicher!!!

Thorben77 24. Feb 2005 16:41

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
Zitat:

Zitat von Spider
Delphi-Quellcode:
var
  I: Integer;
  SL: TStringList;
begin
  SL := TStringList.Create;

  try
    SL.Add('0');
    SL.Add('1');
    SL.Add('2');

    for I := 1 to SL.Count do
    begin
     ShowMessage(SL.Strings[I]);
    end;
  finally
    SL.Free;
  end;
end;
Fazit: Es werden nur 1 und 2 angezeigt.

Da in der dc.loc Dateien stehen:

URL;MD5;Wohin

sollte ja auch die erste Datei ausgelesen werden und nicht "vergessen" werden.

Wenn du das so machst und alle Strings angezeigt werden sollen, musst du statt

Delphi-Quellcode:
 

ShowMessage(SL.Strings[I]);
das schreiben:

Delphi-Quellcode:
ShowMessage(SL.Strings[I - 1]);
sonst fehlt der Eintrag mit der 0, weil das for... bei 1 anfägt und dadurch nicht der Eintrag mit dem Index 0 angezeigt wird...

Aber ich würds auch mit Count - 1 machen...^^

Die Muhkuh 24. Feb 2005 16:45

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
Hi,

@der Depp,

so könnte man es auch machen. Aber so wie der Quellcode im ersten Beitrag ist, wird schlicht einfach der erste Eintrag übersprungen.

@Matze

klar! :mrgreen:

Pseudemys Nelsoni 24. Feb 2005 16:47

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
toll gemacht spider, applaus *g+

roderich 24. Feb 2005 16:58

Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
 
da in dem Code aus dem ersten Posting gar nicht auf die Items der StringList Loc zugegriffen wird, kann die Schleife eigentlich beliebig laufen, hauptsache sie läuft über genau Loc.Count Schritte.
Das Problem liegt nur in der richtigen Indizierung des dynamischen Array Datei, welches ab 0 indiziert wird.

Man könnte also genauso schreiben

Delphi-Quellcode:
    for i := 4711 to Loc.Count-4710 do begin
     Datei[i-4711] := TDatei.Create;
    end;

ich gebe aber zu, daß man die Schleife normalerweise ab 0 laufen lassen würde .......... :stupid:

Roderich


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.
Seite 2 von 3     12 3      

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