Entwickler-Ecke
Sonstiges (Delphi) - Dateien einlesen
mcbrunox - So 01.09.02 13:14
Titel: Dateien einlesen
Ich habe hier eine Routine zum Einlesen von Dateien.
Meine Frage nun...Wie sichere ich die Daten in ein Array und nicht in eine Listbox
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:
| procedure listfiles(dir, mask: string); var rec: TSearchRec; found: Integer; begin if dir[Length(dir)] <> '\' then dir := dir + '\'; found := findfirst(dir + mask, faAnyFile, rec); try while found = 0 do begin Application.ProcessMessages; if (rec.Attr and faDirectory <= 0) then Form1.ListBox1.Items.Add(dir + rec.Name); found := findnext(rec); end; finally findclose(rec); end; found := findfirst(dir + '*.*', faAnyFile, rec); try while found = 0 do begin if (rec.Attr and faDirectory > 0) and (rec.Name[1] <> '.') then ListFiles(dir + rec.Name, mask); found := findnext(rec); end; finally findclose(rec); end; end; |
DeCodeGuru - So 01.09.02 13:32
warum ein array? nimm doch eine Stringlist. Ich finde Stringlist sehr praktisch und wenn ein array wirklich erforderlich ist, dann machste einfach ein array of string. Dann musste mit SetLength die länge des Arrays anpassen und die datein reinschreiben. Such einfach mal in der Hilfe nach SetLength. Da dürfteste fündig werden. wenn nicht, dann poste nochmal :mrgreen:
mcbrunox - So 01.09.02 13:57
da ich ein kompletter newbie,könntest du mir das anhand des codes erklären ?
Stringlist ist das eine komponente ?
XPert - So 01.09.02 14:04
müsste dem namen nach eine komponente sein! ich wüsste auch mal gerne was das ist, denn das kann keine standart-komponente sein.... (zumindest bin ich so blind das ich sie net sehen kann *g*)
bis11 - So 01.09.02 19:30
Müsste ungefähr so funktionieren : (ungetestet)
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 listfiles(dir, mask: string); var Listbox1: TStringList; rec: TSearchRec; found: Integer; begin Listbox1 := TStringList.Create; Listbox1.Clear; if dir[Length(dir)] <> '\' then dir := dir + '\'; found := findfirst(dir + mask, faAnyFile, rec); try while found = 0 do begin Application.ProcessMessages; if (rec.Attr and faDirectory <= 0) then Form1.ListBox1.Items.Add(dir + rec.Name); found := findnext(rec); end; finally findclose(rec); end; found := findfirst(dir + '*.*', faAnyFile, rec); try while found = 0 do begin if (rec.Attr and faDirectory > 0) and (rec.Name[1] <> '.') then ListFiles(dir + rec.Name, mask); found := findnext(rec); end; finally findclose(rec); end; end; |
Du solltest dafür Deine Kompo Listbox von der Form entfernen oder das Wort
Listbox1 durch ein anderes ersetzen.
DeCodeGuru - So 01.09.02 19:57
Hier ist eine "array"-Variante. Der Code wurde von mir in dem Forumeingabeforumlar umgeschrieben --> nicht getestet. Wenn Fehler auftreten bitte melden :mrgreen:
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: 32:
| procedure listfiles(dir, mask: string); var Strings: array of String; rec: TSearchRec; found, anzahl: Integer; begin anzahl := 0; if dir[Length(dir)] <> '\' then dir := dir + '\'; found := findfirst(dir + mask, faAnyFile, rec); try while found = 0 do begin Application.ProcessMessages; if (rec.Attr and faDirectory <= 0) then SetLength(Strings,anzahl +1); Inc(anzahl); Strings[anzahl] := dir + rec.Name; found := findnext(rec); end; finally findclose(rec); end; found := findfirst(dir + '*.*', faAnyFile, rec); try while found = 0 do begin if (rec.Attr and faDirectory > 0) and (rec.Name[1] <> '.') then ListFiles(dir + rec.Name, mask); found := findnext(rec); end; finally findclose(rec); end; end; |
aogwaba - So 01.09.02 20:13
zum Einlesen der Filenamen kannst du auch eine TDirectoryListBox benutzen.
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!