Avatar billede huggebanden Nybegynder
25. juli 2002 - 00:28 Der er 4 kommentarer og
1 løsning

Filer og Mapper i memo

Hvordan kan man få en liste af filer og mapper i en memobox fx: C:\ så skriver den Windows, programmer, autoexec.bat osv.
Avatar billede speedy Nybegynder
25. juli 2002 - 00:41 #1
Sæt et edit-felt (edit1) plus en knap (button1) ind på formen sammen med en memo (memo1) og dobbeltklik på knappen og skriv koden så den kommer til at se sådan ud:

procedure TForm1.Button1Click(Sender: TObject);
var
  SR: TSearchRec;
begin
  Memo1.Lines.Clear;
  if FindFirst(Edit1.Text + '\*.*', faAnyFile, SR) = 0 then
    while FindNext(SR) = 0 do
    begin
      if (SR.Name <> '.') and (SR.Name <> '..') then
      begin
        Memo1.Lines.Add(SR.Name);
      end;
    end;
end;


Kør så programmet og skriv f.eks. c: i edit-feltet og tryk på knappen.

/SpEeDy
Avatar billede huggebanden Nybegynder
25. juli 2002 - 00:47 #2
Lige et ekstra spørgsmål ved du hvordan man kunne sortere først mapper efter navn og så filer efter navn :)
Avatar billede hermandsen Juniormester
25. juli 2002 - 00:48 #3
Her er en ret god Fil-søge komponent! :)
http://www.pythia.dk/komponenter/download/TFileSearch.zip
Avatar billede nico26 Nybegynder
25. juli 2002 - 00:59 #4
Hvis du bruger en ListBox i stedet for en Memo, kan du sætte dens Sorted property til True.
Avatar billede hermandsen Juniormester
25. juli 2002 - 01:01 #5
Biksede lige noget hurtigt sammen...


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, FileSearch;

type
  TForm1 = class(TForm)
    FileSearch1: TFileSearch;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure FileSearch1DirectoryFound(Sender: TObject;
      Directory: String);
    procedure FileSearch1FileFound(Sender: TObject; Filename: TFileName);
    procedure FileSearch1Finish(Sender: TObject; Breaked: Boolean);
  private
    Dirs, Files: TStringList;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Enabled := False;
  Dirs := TStringList.Create;
  Files := TStringList.Create;

  FileSearch1.Root := 'C:\Dokumenter';
  FileSearch1.Filter := '*.*';
  FileSearch1.Recursiv := True; //Sæt til False hvis den ikke skal søge i undermapper
  FileSearch1.Execute;
end;

procedure TForm1.FileSearch1DirectoryFound(Sender: TObject;
  Directory: String);
begin
  Dirs.Add(Directory);
end;

procedure TForm1.FileSearch1FileFound(Sender: TObject;
  Filename: TFileName);
begin
  Files.Add(Filename);
end;

procedure TForm1.FileSearch1Finish(Sender: TObject; Breaked: Boolean);
begin
  Memo1.Lines := Dirs;
  Memo1.Lines.AddStrings(Files);
  Button1.Enabled := True;
  Dirs.Free;
  Files.Free;
end;

end.
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