Avatar billede gravbamzula Nybegynder
04. juni 2002 - 00:36 Der er 8 kommentarer og
4 løsninger

Fil liste

Jeg skal have lavet en liste over bestemte (f.eks *.txt) filer der ligger i f.eks "c:\test" plus under biblioteker. Jeg skal bare hae fil navnene og ikke stierne...
Avatar billede zerohero Nybegynder
04. juni 2002 - 00:43 #1
brug Tfilelistbox...
Avatar billede gravbamzula Nybegynder
04. juni 2002 - 00:45 #2
Ja men hvordan får jeg underbibliotekerne med??
Avatar billede borrisholt Novice
04. juni 2002 - 08:25 #3
http://borrisholt.com under FileIO finder du et komplet eksempel.

Jens B
Avatar billede cms Nybegynder
04. juni 2002 - 08:39 #4
Jens - din side er frygtelig i Ie6 :(
Avatar billede borrisholt Novice
04. juni 2002 - 08:40 #5
Avatar billede zerohero Nybegynder
04. juni 2002 - 08:42 #6
lav en løkke der tjekker for undermapper! Til det kan du eventuelt bruge en TDirectoryListBox... Vær sikker på at din TFileListBox og din TDirectoryListBox altid har samme sti, så skriv følgende i din TDirectoryListBox's OnChange event:

procedure TForm1.DirectoryListBox1Change(Sender: TObject);
var
  i : integer;
  s : string;
begin
  FileListBox1.Directory := DirectoryListBox1.Directory;
  Caption := 'RodMappe : '+DirectoryListBox1.Items[DirectoryListBox1.ItemIndex];
  if DirectoryListBox1.ItemIndex < DirectoryListBox1.Items.Count then
  begin
    s := '';
    for i := 0 to DirectoryListBox1.Items.Count-DirectoryListBox1.ItemIndex-1 do
    if i > 0 then
    s := s+DirectoryListBox1.Items[DirectoryListBox1.ItemIndex+i]+', ';
    Caption := Caption+' UnderMapper: '+s
  end;
end;

I koden viser den, RodMappen (den mappe du er befinder dig i) og dernæst alle undermapper der tilhøre rodmappen, i din form's caption...

ZeroHero
Avatar billede martinlind Nybegynder
04. juni 2002 - 09:10 #7
Smid denne comp i en unit og installer den, sæt property til det du vil og kør execute, resultatet kan assignes til en listbox

http://www.eksperten.dk/spm/214736
Avatar billede hermandsen Juniormester
04. juni 2002 - 15:49 #8
Avatar billede hebo Nybegynder
07. juni 2002 - 08:57 #9
Her er et fungerende eksempel

Lav en form og sæt en listbox,edit,directorylistbox,drivecombobox og en checkbox på formen.

Tilføj følgende til button1click

procedure TForm1.Button1Click(Sender: TObject);
var path : string;
  Taeller,Taeller2 : integer;
  Liste : Tstrings;
  TooMany : boolean;
begin
  screen.cursor := crHourglass;
  caption := 'Checking';
  form1.update;
  Liste := Tstringlist.create;
  ListBox1.Items.Clear;
  TooMany := false;
  Taeller := 0;
  Taeller2 := 0;
  if Length(DirectoryListBox1.Directory) = 3 then Liste.add(copy(DirectoryListBox1.Directory,1,2)) else Liste.add(DirectoryListBox1.Directory);
  repeat
    FindFirst(Liste.strings[Taeller]+'\*.*',FaDirectory,SR);
    while findnext(sr) = 0 do
    begin
      if (sr.name <> '..') and (sr.name <> '.') then
        if SR.Attr and faDirectory = faDirectory then
          Liste.add(Liste.strings[Taeller]+'\'+Sr.name);
    end;
    inc(taeller);
  until Taeller > Liste.count-1;
  for taeller := 0 to Liste.Count-1 do
  begin
    FindFirst(Liste.Strings[TAeller]+'\'+edit1.text,faAnyFile,SR);
    repeat
      caption := 'Checking directory: ' + inttostr(taeller+1) + '/' + inttostr(liste.count);
      form1.update;
      if sr.attr and faDirectory <> faDirectory then
      begin
        if checkbox1.checked then sr.name := Liste.strings[taeller]+'\'+sr.name;
        if ListBox1.Items.count < 32736 then ListBox1.Items.Add(sr.name)
        else TooMany := true;
        inc(Taeller2);
      end;
    until findnext(sr) <> 0;
  end;
  Liste.free;
  Caption := Caption + ' - ' + inttostr(Taeller2) + ' matches found';
  if TooMany then Caption := Caption + ' - only 32736 matches shown...';
  screen.cursor := crDefault;
end;


Det er måske nok en overdrevet version men så kan du jo bare fjerne noget af det.
Avatar billede borrisholt Novice
07. juni 2002 - 10:16 #10
lad os få det her afslutet. Her er et færdigt eksempel :

Http://borrisholt.com/Eksperten/ThreadSearch.zip

Jens B
Avatar billede hebo Nybegynder
07. juni 2002 - 10:41 #11
Hov .. jeg glemte at der skal være en variabel der hedder
SR : TSearchRec;
Avatar billede hermandsen Juniormester
08. juni 2002 - 15:24 #12
>>gravbamzula
Beslut dig, og luk!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester