Avatar billede jolly_jay Nybegynder
10. december 2002 - 16:13 Der er 10 kommentarer og
1 løsning

Søgning efter fil

Hvordan får jeg et program til at søge efter en bestemt fil type og derefter sætter alle filerne ind i en combobox.

I comboboxen skal stien fjernes:"C:\test\test.txt" Skal være "text.txt" i stedet.

Jeg har prøvet med:
procedure TForm1.Button3Click(Sender: TObject);
var
  buffer: array [0..255] of char;
  FileToFind: string;
begin
  GetWindowsDirectory(buffer, SizeOf(buffer));
  FileToFind := FileSearch(Edit1.Text, GetCurrentDir + ';' + buffer);
  if FileToFind = '' then
    ShowMessage('Couldn''t find ' + Edit1.Text + '.')
  else
    Edit3.Text:=FileToFind;
end;

Men den fortæller ikke hvilken fil den har fundet, men kun at den har fundet en fil.

Håber nogen kan hjælpe.
Avatar billede borrisholt Novice
10. december 2002 - 16:44 #1
På borrisholt.com under FileIo finder du et eksempel på hvordan du gør

Eksemplet hedder ThreadSearch!
Avatar billede jolly_jay Nybegynder
10. december 2002 - 16:53 #2
Din side ser noget mærkelig ud...

men jeg har fundet ThreadSearch.zip
Avatar billede jolly_jay Nybegynder
10. december 2002 - 17:15 #3
Jeg er ikke så god til delphi, så jeg kan ikke lige se igennem ThreadSearch og hvordan jeg skal bruge tingene.

Er der ikke en anden måde?
Avatar billede jolly_jay Nybegynder
11. december 2002 - 17:00 #4
Ingen der kan hjælpen??
Avatar billede stoney Nybegynder
11. december 2002 - 17:39 #5
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(extractfilename(Res.Name));
      EOFound:= FindNext(Res) <> 0;
    end;
  FindClose(Res);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
FindAll('C:\windows\' + edit1.text ,faAnyFile,combobox1.Items);
end;

Stoney
Avatar billede jolly_jay Nybegynder
11. december 2002 - 18:41 #6
Det prøver jeg lige...
Avatar billede jolly_jay Nybegynder
11. december 2002 - 19:17 #7
stoney: takker for hjælpen, lige et ekstra spørgsmål:

Hvordan får jeg fjernet .txt ?

List.Add(extractfilename(Res.Name));

Jeg ved at den fjerner "C:\blabla". men hvilken komando fjerner .txt ?
Avatar billede stoney Nybegynder
11. december 2002 - 20:36 #8
ret linien til

List.Add(Copy(res.name, 1, Pos('.', res.name) - 1));

Stoney
Avatar billede jolly_jay Nybegynder
11. december 2002 - 21:04 #9
Det jeg mente var: hvordan får jeg fjernet *.txt samtidig med at den fjerner "C:\blabla"?
Avatar billede stoney Nybegynder
11. december 2002 - 21:32 #10
Det skulle den da også meget gerne gøre.
Jeg har lige testet det.

Stoney
Avatar billede jolly_jay Nybegynder
11. december 2002 - 21:54 #11
OKay nu virker det. 1000 tak.
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