Avatar billede cope21 Nybegynder
09. december 2001 - 15:06 Der er 20 kommentarer og
2 løsninger

Directory index

Hvordan indekserer man et directory? Forstået på den måde, at man vælger et \"root-directory\" fx C:\\ eller C:\\programmer\\

Så skal navnene på alle subdirs gemmes i en TStringList - dog ikke 2nd level subdirs.

Eksempel:

c:\\
|---- programmer
|  |---- borland
|  |---- powerdvd
|---- windows

Altså er det kun \"programmer\" og \"windows\" der skal gemmes (1st level subdirs).
Avatar billede easysoft_studios Nybegynder
09. december 2001 - 15:10 #1
bruger du Delphi 6??

i den er der et komponentet der hedder ShellTreeView.

Hvis du kører Delphi 5 eller mindre skal du ud at lede efter et andet komponent.

Fidusen er nemlig at de finder den \"path\" du snakker om... kik på www.torry.net, efter \"shell\" eller sådan noget...
Avatar billede cope21 Nybegynder
09. december 2001 - 15:13 #2
Jeg bruger Delphi 6 ja - har prøvet med TreeView, men kan ikke få det til at virke.

Men som sagt skal den bare gemme 1st level subdirs til det path jeg vælger i en TStringList...
Avatar billede ziron Nybegynder
09. december 2001 - 15:15 #3
kig på FindFirst og findnext i delphi hjælpen det er de funktioner du skal bruge...

/ZIRON
Avatar billede cope21 Nybegynder
09. december 2001 - 15:31 #4
Du kan ikke give et lille eksempel?
Avatar billede ziron Nybegynder
09. december 2001 - 15:32 #5
joo det skal jeg nok, men jeg ser lige film. 1 time igen og jeg gider ike før :)

/ZIRON
Avatar billede cope21 Nybegynder
09. december 2001 - 15:34 #6
LOL ok, fair nok :)
Avatar billede stoney Nybegynder
09. december 2001 - 15:42 #7
Hvis du bare vil have listet all dir i et dir
har jeg et eks. jeg kan mail dig.

Det vil vise

c:\\
|---- programmer


|---- windows

Stoney
Avatar billede cope21 Nybegynder
09. december 2001 - 15:47 #8
Jeg skal bare have listet all dirs ja.. men kun 1st level dirs.. ikke c:\\programmer\\borland\\ hvis jeg valgte c:\\ som path fx - kun dirs og ikke filerne.

Vil jeg meget gerne have Stoney :)
Avatar billede stoney Nybegynder
09. december 2001 - 15:53 #9
Drop en edit1.text + button1 + treeview1 + listbox1

Du kan bare sætte listbox1.visible := false;

Du angiver din path i edit1

procedure FindAll (const Path: String;
                        Attr: Integer;
                        List: TStrings);
var
  Res: TSearchRec;
  EOFound: Boolean;
begin
  EOFound:= False;
  if FindFirst(Path, Attr, Res) < 0 then
    exit
  else
    while not EOFound do begin
      List.Add(Res.Name);
      EOFound:= FindNext(Res) <> 0;
    end;
  FindClose(Res);
end;


procedure TForm1.Button1Click(Sender: TObject);
var
i1 : integer;
MyTreeNode1: TTreeNode;
begin
FindAll(edit1.text +\'*.\',faAnyFile,ListBox1.Items);
treeview1.Items.Clear ;

with TreeView1.Items do
MyTreeNode1 := Add(nil, (edit1.Text));
for i1 := 0 to listbox1.Items.Count - 1    do
treeview1.Items.AddChild(MyTreeNode1,(ListBox1.Items[i1]));


end;

Ellers droop en mail adr og jeg sender dig projectet

Stoney
Avatar billede cope21 Nybegynder
09. december 2001 - 16:04 #10
Stoney ..

Det virker 99% tak :o) Jeg brugte godtnok lige faDirectory i stedet for faAnyFile ... men den viser stadig nogle filer, fx t2mg.1 og t2bg.4 der ligger i roden på mit G: drev - derudover kun de ønskede dirs.

Hvordan får jeg den til KUN at vise dirs?
Avatar billede cope21 Nybegynder
09. december 2001 - 16:06 #11
... lige som om den også tager \"ukendte filtyper\" med.
Avatar billede stoney Nybegynder
09. december 2001 - 16:13 #12
Mærkeligt

Jeg har prøvet at lægge t2mg.1 og t2bg.4 i et dir
og de bliver ikke vist hos mig.
Hvad mener du med \"ukendte filtyper\" ?

Stoney
Avatar billede cope21 Nybegynder
09. december 2001 - 16:19 #13
Her er et lille udpluk af hvad mit G: drev indeholder:
--------------------------
t23c
t2ao
t2ks
t68
t2g8
Delphi Projects
Websites
Upload
Books
--------------------

De der \"t2ks\" osv underlige navne er filer uden file extension og bliver derfor vist. Havde de heddet t2ks.txt fx eller bare t2ks.pis var de heller ikke blevet vist.

Altså viser den altså på path\'en som ikke har en file extension ex:

\"database.dat\" ville den ikke vise
\"database\" ville den vise

Selvom de begge 2 er datafiler og ikke dirs.
Avatar billede stoney Nybegynder
09. december 2001 - 16:32 #14
Du har ret.
Det gør den også på min.
Tror du ikke det er en bug i windows ( eller en feature som Bill G. nok ville kalde det *G*)

Jeg prøver lige at se om jeg kan finde en løsning.

Stoney
Avatar billede ziron Nybegynder
09. december 2001 - 16:34 #15
hmmm send til ziron@kulhytten.dk så kigger jeg også lige, og ellers skriver jeg lige min egen kode når filmen er slut..

/ZIRON
Avatar billede cope21 Nybegynder
09. december 2001 - 16:34 #16
Hehe ok.. ellers overlever jeg nok, det undrede mig bare, når man bruger faDirectory (DIRECTORY) som parameter :)

Anyway Stoney.. 1000 tak og points\'ene er dine, men vil du svare på 1 spørgsmål mere hvis jeg lige smider en håndfuld points mere oveni? :)
Avatar billede dkn Nybegynder
09. december 2001 - 18:20 #17
Jeg har et komponent et eller andet sted til det, bare kom med din mail.

dkn
Avatar billede ziron Nybegynder
09. december 2001 - 19:31 #18
cope21 >> se lige på denne funktion, virker den hos dig?

procedure TForm1.Button1Click(Sender: TObject);
var
s : TSearchRec;
begin
  if FindFirst(\'c:\\*.*\', faDirectory, s) = 0 then
    begin
      repeat
        if s.Attr = faDirectory then
          begin
            ListBox1.Items.Add(s.Name);
        end
      until FindNext(s) <> 0;
  end;
end;

/ZIRON
Avatar billede stoney Nybegynder
09. december 2001 - 21:04 #19
cope21>>

Ja, selvfølgelig vil jeg svare på flere spørgsmål,
hvis jeg kan.

Stoney
Avatar billede hreiff Nybegynder
10. december 2001 - 12:20 #20
Ziron\'s kode virker 100% hos mig (ingen filer uden extension), men jeg kører også en gammel delphi.
Avatar billede cope21 Nybegynder
10. december 2001 - 18:36 #21
Jeg har valgt at give jer ½-delen af points\'ene hver, da I begge har bidraget meget - selvom det var ziron der løb af med 13-tallet :)

Tak gutter!
Avatar billede ziron Nybegynder
10. december 2001 - 21:38 #22
det er bare iorden, bare du har fået det til at funge...

/ZIRON
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