Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Dateinamen in Array in Grid
whitef - Sa 26.12.15 23:44
Titel: Dateinamen in Array in Grid
hi,
ich versuche grade aus einem ordner alle dateinamen aufzulisten und in ein array zu schreiben und von dort aus wieder in ein grid.
irgendwie stehe ich gerade auf dem schlauch. irgendwas funktioniert da nicht...
wäre jemand so nett und würde mal drüber schauen?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| procedure TForm1.Button1Click(Sender: TObject); var i : Integer; searchResult : TSearchRec; multiArray : Array of Array [1..6] of WideString; begin i := 0; stringgrid1.RowCount := i; SetLength(multiArray, 2); if FindFirst(ExtractFilePath(paramstr(0)) + 'data\' + '*.*', faAnyFile, searchResult) = 0 then begin repeat if ( searchResult.Name <> '.' ) and ( searchResult.Name <> '..' ) then begin multiArray[i,1] := searchResult.Name; SetLength(multiArray, high(multiArray)+1); i := i + 1; end; until FindNext(searchResult) <> 0; FindClose(searchResult); end;
stringgrid1.RowCount := high(multiArray)+1; if i > 0 then begin for i := low(multiArray) to high(multiArray) - 1 do begin stringgrid1.Cells[0,i+1] := multiArray[i,1]; end; end; end; |
Mathematiker - So 27.12.15 00:22
Hallo,
wenn du dein Programm um Debugger-Modus schrittweise ausführst, siehst du, dass
Delphi-Quelltext
1:
| SetLength(multiArray, high(multiArray)+1); |
die Grenzen des Feldes nicht erweitert. high(multiarray) gibt dir nicht die Anzahl der Elemente, sondern die Anzahl - 1 zurück, da der erste Index = 0 ist.
Mit
Delphi-Quelltext
1:
| setLength(multiArray, high(multiarray)+2); |
funktioniert es.
Beste Grüße
Mathematiker
PS: Das war mein 2000.Beitrag. :dance2:
Martok - Mo 28.12.15 00:59
Oder du verwendest um die aktuelle Länge festzustellen Length(), damit macht das dann auch semantisch Sinn.
Mathematiker hat folgendes geschrieben : |
| PS: Das war mein 2000.Beitrag. :dance2: |
Glückwunsch :beer: :)
whitef - Sa 09.01.16 10:05
danke...
eigentlich hatte ich das auch schon versucht... aber vlt an anderer stelle wieder was vertauscht :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!