![]() |
for I := 1 to SL.Count do; oder for I := 0 to SL.Count -1 do
Hi,
mein Freund hat mir gerade folgenden Code gegeben:
Delphi-Quellcode:
ich hab zu ihm gesagt, das da nen Bock drinne ist. Es müsste nämlich for I := 0 to SL.Count - 1 do heißen.
function Anzahl : Integer;
var loc : TStringlist; i : Integer; begin loc := TStringlist.Create; try loc.LoadFromFile('dc.loc'); SetLength(Datei,Loc.Count); for i := 1 to Loc.Count do begin Datei[i] := TDatei.Create; end; Result := loc.Count; finally loc.Free; end; end; Er sagte mir dazu noch dies: Zitat:
Zeile 1 = Count 0; Zeile 2 = Count 1; Jetzt wollte ich wissen, was nun richtig? |
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
Bei einer Zeile ist Count = 1 aber der INDEX der ersten Zeile ist 0 !!
PS : Der Freund bin ich :mrgreen: |
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
Die erste Zeile einer Stringliste hat immer den Index 0. Deshalb darf die Schleife auch nur bis Count-1 laufen.
|
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
@ Luckie : Du verstehst nicht genau worum es geht.
Es sollen soviele TDatei erstellt werden wie die Datei Zeilen hat. Bei zwei Zeile ist Count = 2 also
Delphi-Quellcode:
Und das erzeugt 2 TDatei !!
for i:= 1 to 2 do begin
end; |
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
NeutralGeneral liegt richtig.
Aenogym |
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
Ist
Delphi-Quellcode:
aber nicht ein dynamisches Array, das in dem Fall bei Null beginnt? :gruebel: Wenn Ja, dann kann die Schleife auch wie gehabt von Null bis Count-1 laufen.
SetLength(Datei,Loc.Count);
|
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
Zitat:
(0, 1) sind auch zwei "Dateien". |
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
Hi,
aber in der StringList wird dann der erste Eintrag übersprungen! Test-Code:
Delphi-Quellcode:
Fazit: Es werden nur 1 und 2 angezeigt.
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; Da in der dc.loc Dateien stehen: URL;MD5;Wohin sollte ja auch die erste Datei ausgelesen werden und nicht "vergessen" werden. |
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
Zitat:
|
Re: for I := 1 to SL.Count do; oder for I := 0 to SL.Count -
Delphi-Quellcode:
Fazit: Es werden 0, 1 und 2 angezeigt.
var
I: Integer; SL: TStringList; begin SL := TStringList.Create; try SL.Add('0'); SL.Add('1'); SL.Add('2'); for I := 0 to SL.Count-1 do begin ShowMessage(SL.Strings[I]); end; finally SL.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 Uhr. |
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 by Thomas Breitkreuz