/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Hent Mapper
Fra : Henning Madsen


Dato : 08-01-02 20:31

Er der en venlig sjæl som kan give mig en løsning på hvordan man
henter navnene på mapper.

Jeg har lavet et program der henter EXE filer i mappen 'Eksempler'.
I mappen ligger også flere mapper med Delphi programmer, det
Er disse programmers EXE filer der manuelt er flyttet ud i
mappen 'eksempler', men det var jo meget smartere at programmet
selv åbnede mappen og hentede EXE filen.
Det nuværende program ser således ud og kan nok bedre vise hvad det er jeg
mener.
Øverste if linie er hvordan jeg troede det ku løses, men ak det øvrige
virker ok.

procedure TForm1.Button1Click(Sender: TObject);
Var
sr : TSearchRec; // indeholder resultatet fra findfirst og findnext
S : String;
T : Integer;
begin
S := 'ListBox';
file://If FindFirst('D:\Egne
Programmer\Komponenter\Eksempler\',faDirectory,sr) = 0 then Begin
If FindFirst('D:\Egne
Programmer\Komponenter\Eksempler\*.EXE',faAnyFile,sr) = 0 then Begin
If Pos(UPPERCASE(S),UPPERCASE(sr.Name)) = 1 Then
ListBox1.Items.Add(sr.Name);
End;
While FindNext(sr) = 0 do Begin
If Pos(UPPERCASE(S),UPPERCASE(sr.Name)) = 1 Then ListBox1.Items.Add
(sr.Name);
End;

På forhånd tak for et eventuel svar fra en nybegynder.
Med venlig hilsen
Henning Madsen.




 
 
René Jensen (08-01-2002)
Kommentar
Fra : René Jensen


Dato : 08-01-02 22:35

Henning Madsen wrote:
> Jeg har lavet et program der henter EXE filer i mappen 'Eksempler'.
> I mappen ligger også flere mapper med Delphi programmer, det
> Er disse programmers EXE filer der manuelt er flyttet ud i
> mappen 'eksempler', men det var jo meget smartere at programmet
> selv åbnede mappen og hentede EXE filen.

Du kan bruge nedenstående kode til at finde filer fra en bestem mappe og
dens undermapper.

<start>
procedure FindFiles(Path: string; Filter: string; var FileList:
TStringList);
var
   SearchRec: TSearchRec;
begin
   if Path[Length(Path)] <> '\' then
      Path := Path + '\';
   if FindFirst(Path + '*.*', faAnyFile, SearchRec) = 0 then
   begin
      if SearchRec.Attr and faDirectory = faDirectory then
      begin
         if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
            FindFiles(Path + SearchRec.Name, Filter, FileList);
      end
      else
         if UpperCase(ExtractFileExt(SearchRec.Name)) =
UpperCase(ExtractFileExt(Filter)) then
            FileList.Add(Path + SearchRec.Name);
      while FindNext(SearchRec) = 0 do
         if SearchRec.Attr and faDirectory = faDirectory then
         begin
            if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
               FindFiles(Path + SearchRec.Name, Filter, FileList);
         end
         else
            if UpperCase(ExtractFileExt(SearchRec.Name)) =
UpperCase(ExtractFileExt(Filter)) then
               FileList.Add(Path + SearchRec.Name);
   end;
end;
<end>

Du kalder proceduren 7med 3 parametre:

1. Path: Enten fuld eller relativ sti navn til den mappe, du ønsker at
lede efter filer.
2. Filter: Angiv *.* for at få alle filer, og i dit tilfælde brug *.exe.
3. FileList: En variabel af type TStringList. Husk at oprette og
initiliasere den før du kalder proceduren, og efter du har kaldt
proceduren, vil din variabel indeholde alle filer, som matcher dit
filter.

--
Med venlig hilsen,
René Jensen

Once a upon a time a wise man said to me:
"I consider Windows like I consider bad weather ... I accept it and hope
for something better"

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste