Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Überspringt einfach Schleife!!! (https://www.delphipraxis.net/15332-ueberspringt-einfach-schleife.html)

billi 26. Jan 2004 17:47


Überspringt einfach Schleife!!!
 
Hallo,
in folgendem Programm wird einfach die Ausgabeschleife am Ende Ignoriert! Und ich weis net wie ich das abstellen soll:

Delphi-Quellcode:
procedure TForm1.BErzeugenClick(Sender: TObject);
var
  Dateinamen: array of string;
  Dir: string;
  SearchRec: TSearchRec;
  i, j: integer;
begin
  Dir := LQuelle.caption;
  if FindFirst('c:\*.*', faAnyFile, SearchRec) = 0 then
  try
    i := 0;
    SetLength(Dateinamen, 1);
    Dateinamen[0] := SearchRec.Name;
    while FindNext(SearchRec) = 0 do
      begin
        i := i + 1;
        SetLength(Dateinamen, Length(Dateinamen) + 1);
        Dateinamen[i] := SearchRec.Name;
      end;
  finally
    FindClose(SearchRec);
  end;
  for j := Length(Dateinamen) to 0 do
    MSchleife.lines.add(Dateinamen[j]);
end;
Über einen guten Rat freue ich mich,
gruß
billi

[edit=r_kerber]Code durch Delphi-Tags ersetzt. Mfg, r_kerber[/edit]

Die Muhkuh 26. Jan 2004 17:53

Re: Überspringt einfach Schleife!!!
 
Hi,

entweder du schreibst:

Delphi-Quellcode:
  for j := Length(Dateinamen) downto 0 do
    MSchleife.lines.add(Dateinamen[j]);
oder

Delphi-Quellcode:
  for j := Length(Dateinamen) to {Eine Zahl} do
    MSchleife.lines.add(Dateinamen[j]);
Was anderes kann ich mir net vorstellen...

r_kerber 26. Jan 2004 17:57

Re: Überspringt einfach Schleife!!!
 
Und außerdem liefert Length IMHO die Anzahl der Zeichen eines Strings zurück und nicht, wie Du gern möchtest, die Anzahl der Elemente des Feldes.

billi 26. Jan 2004 18:00

Re: Überspringt einfach Schleife!!!
 
das mit lenght funzt aber...
und dank dem tip das ganze ding auch...
danke,
billi

Die Muhkuh 26. Jan 2004 18:00

Re: Überspringt einfach Schleife!!!
 
Vielleicht solltest du noch statt:

Delphi-Quellcode:
Dateiname: array of String
lieber

Delphi-Quellcode:
Dateiname: String
schreiben.


Oder irre ich mich da? :gruebel:

billi 26. Jan 2004 18:03

Re: Überspringt einfach Schleife!!!
 
wieso? es handelt sich bei Dateinamen um einen Array?!

billi 26. Jan 2004 18:05

Re: Überspringt einfach Schleife!!!
 
mit dem "lenght" bin ich mir doch nicht so ganz sicher... ich steig lieber aus "high" um...

Matze 26. Jan 2004 18:13

Re: Überspringt einfach Schleife!!!
 
Length gibt einfach die Länge des Arrays zurück, High die Anzahl der belegten Plätze.

@Spider: Ich würde aus dem Array nicht einfach so mal nen String machen. ;)

Matze 26. Jan 2004 18:13

Re: Überspringt einfach Schleife!!!
 
Length gibt einfach die Länge des Arrays zurück, High die Anzahl der belegten Plätze.

@Spider: Ich würde aus dem Array nicht einfach so mal nen String machen. ;)

SORRY, kA, warum ich nen Doppelpost hab, war noch nie so :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 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