Einzelnen Beitrag anzeigen

Stamper

Registriert seit: 19. Jan 2008
18 Beiträge
 
#5

Re: Beim Suchen gefundene Elemente aus Memo löschen

  Alt 19. Jan 2008, 16:28
Hm, der Kompiler mag kein "FmUtils".

was soll ich denn als Aufruf in die OnKlick-Prozedur schreiben?

Ich kopier mal die relevanten Quellcode für das bessere Verständnis.

Delphi-Quellcode:
var gcount, gconst: integer;

uses StrUtils;
Meine aus dem Inet geklaute Suche. Also eig brauche ich keine rekursive Suche. Aber da ich nicht so der Crack in Programmierung bin, hab ich was genommen, was ich ohne größere Mühe einbinden konnte. Denn die ganz einfach Suchfunktion, die Delphi bietet, hat keine Unterverzeichnisse durchsucht bzw. ich wusst nicht, wie ich das anstellen sollte.
Delphi-Quellcode:
procedure GetFilesInDirectory(Directory: String; mzwvar2: String;
                              List: TStrings;
                              WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: String);
var
  SR: TSearchRec;
begin
  screen.Cursor := crHourglass;
  if FindFirst(Directory + mzwvar2, faAnyFile and not faDirectory, SR) = 0 then try
    repeat
      List.Add(Directory + SR.Name);
      gcount := gcount + 1;
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
      repeat
        if ((SR.attr and faDirectory) = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
  Screen.Cursor := crDefault;
end;

begin
  List.BeginUpdate;
  try
    if Directory = 'then Exit;
    if Directory[Length(Directory)] <> '\then
      Directory := Directory + '\';
    ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;
Meine OnKlick-Prozdur:

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var mzwvar : string;
    lcount, highcount : byte;
begin
  gcount := 0;
  Progressbar1.Max:= Memo1.Lines.Count;
  highcount := memo1.Lines.Count;
  For lcount := 0 to highcount-1 do
  begin
    gconst := lcount;
    mzwvar := memo1.Lines[lcount];
    GetFilesInDirectory(shelltreeview1.SelectedFolder.PathName, mzwvar, Listbox1.Items, True, True);
    Progressbar1.Position:= lcount + 1;
    label1.Caption := format('Es wurde(n) %d Datei(en) gefunden.',[gcount]);
  end;
  CopyFiles('C:',memo1.Lines);
end;
Also folgender Code ist bestimmt falsch ... aber ich habe ihn vorläufig in der OnKlick-Prozedur stehen lassen:
CopyFiles('C:',memo1.Lines); Noch eine Frage @DeddyH: Wofür steht das 'C:' in deiner Aufrufprozedur?

So, schon mal vielen Dank. Ich weiß, es ist immer schlimm, sich mit Anfänger rumzuschlagen. ^^

Schöne Grüße
Eric
  Mit Zitat antworten Zitat