AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi for I := 1 to SL.Count do; oder for I := 0 to SL.Count -1 do
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Die Muhkuh · begonnen am 24. Feb 2005 · letzter Beitrag vom 25. Feb 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#1

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

  Alt 24. Feb 2005, 16:14
Hi,

mein Freund hat mir gerade folgenden Code gegeben:

Delphi-Quellcode:
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;
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.

Er sagte mir dazu noch dies:
Zitat:
Count gibt die Anzahl der reihen
So und ich will soviele dateien erzeugen wie es Zeilen gibt ...

Count fängt ist bei einer Zeile = 1
Count ist bei zwei Zeilen = 2
usw...
Jede Zeile ist eine Datei.
Ich sagte ihm das es falsch ist.

Zeile 1 = Count 0;
Zeile 2 = Count 1;

Jetzt wollte ich wissen, was nun richtig?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

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

  Alt 24. Feb 2005, 16:15
Bei einer Zeile ist Count = 1 aber der INDEX der ersten Zeile ist 0 !!

PS : Der Freund bin ich
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

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

  Alt 24. Feb 2005, 16:16
Die erste Zeile einer Stringliste hat immer den Index 0. Deshalb darf die Schleife auch nur bis Count-1 laufen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

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

  Alt 24. Feb 2005, 16:18
@ 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:
for i:= 1 to 2 do begin

end;
Und das erzeugt 2 TDatei !!
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#5

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

  Alt 24. Feb 2005, 16:20
NeutralGeneral liegt richtig.

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

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

  Alt 24. Feb 2005, 16:23
Ist
 SetLength(Datei,Loc.Count); aber nicht ein dynamisches Array, das in dem Fall bei Null beginnt? Wenn Ja, dann kann die Schleife auch wie gehabt von Null bis Count-1 laufen.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

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

  Alt 24. Feb 2005, 16:24
Zitat von Neutral General:
@ Luckie : Du verstehst nicht genau worum es geht.
Es sollen soviele TDatei erstellt werden wie die Datei Zeilen hat.
Schon mal die Null mitgezählt?


(0, 1) sind auch zwei "Dateien".
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

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

  Alt 24. Feb 2005, 16:24
Hi,

aber in der StringList wird dann der erste Eintrag übersprungen!

Test-Code:

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.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

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

  Alt 24. Feb 2005, 16:27
Zitat von Neutral General:
@ Luckie : Du verstehst nicht genau worum es geht.
Ich hätte genau die gleiche Antwort gegeben wie Luckie. Die Schleife muss von 0 bis Count-1 laufen, da die erste zeile den Index 0 besitzt.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#10

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

  Alt 24. Feb 2005, 16:28
Delphi-Quellcode:
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;
Fazit: Es werden 0, 1 und 2 angezeigt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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