![]() |
-Suchfunktion-Dateien und Ordner namen abgleichen
hi leutz^^
also ich hab es jetzt hinbekommen dass alle dateien und ordner -namen in nem stringgrid angezeigt werden. nur mein problem ist ich brauch noch ne suchfunktion die mir die dateinamen aufgibt zu dem es einen ordner gibt^^ k is iwi doof aber ich brauch das so^^,...also es soll nur geschaut werden ob auf der hdd eine datei(*.exe) existiert und ob es dazu einen ordner gibt der genauso heisst^^ beispiel: es wird die datei als match gefunden c:\data\files\1234.exe heisst, und auf der hdd ist unter c:\dokumente\1234\ ein ordner der zum namen passt^^ ich hoffe ich hab ich so ausgedrueckt dass es verstaendlich ist,...^^ btw ich denke es ist einfacher das in nem stringgrid abzuwickeln,...wenn jemand aber ne bessere idee hat bin ich fuer alles offen:) thx im vorraus leutz da o0o |
Re: -Suchfunktion-Dateien und Ordner namen abgleichen
mit
![]() wenn du keine neue Dateierweiterung angibst, dann wird die alte sozusagen entfernt:
Delphi-Quellcode:
AlsVerzeichnisname := ChangeFileExt(Dateiname, '') + '\';
|
Re: -Suchfunktion-Dateien und Ordner namen abgleichen
Zitat:
Moin |
Re: -Suchfunktion-Dateien und Ordner namen abgleichen
ich bitte um verzeihung^^,...ich habs nich im stringgrid sondern im treeview :wall:
mein bisheriger source:
Delphi-Quellcode:
also ok ich kann wie du es schreibst alle *.exe dateien vergleichen lassen,...aber wenn auf nem pc zb 1000 anwendungen oder mehr sind muessten dann doch auch 1000x gesucht werden oder?(wird denk ich mal lange dauern oder?)
//listed die drives
procedure List_Drives; const DRIVE_UNKNOWN = 0; DRIVE_NO_ROOT_DIR = 1; DRIVE_REMOVABLE = 2; DRIVE_FIXED = 3; DRIVE_REMOTE = 4; DRIVE_CDROM = 5; DRIVE_RAMDISK = 6; var r: LongWord; Drives: array[0..128] of char; pDrive: PChar; begin r := GetLogicalDriveStrings(SizeOf(Drives), Drives); if r = 0 then Exit; if r > SizeOf(Drives) then raise Exception.Create(SysErrorMessage(ERROR_OUTOFMEMORY)); pDrive := Drives; while pDrive^ <> #0 do begin if GetDriveType(pDrive) = DRIVE_FIXED then Form1.ComboBox1.Items.Add(pDrive); Inc(pDrive, 4); end; end; //listed alles im tree-view procedure GetDirectories( Tree: TTreeView; Directory: string; Item: TTreeNode; IncludeFiles: Boolean ); var SearchRec: TSearchRec; ItemTemp: TTreeNode; begin Directory := IncludeTrailingPathDelimiter(Directory); if FindFirst(Directory + '*.*', faDirectory or faReadOnly or faArchive, SearchRec) = 0 then begin repeat if Pos(SearchRec.Name, '..') = 1 then Continue else if (SearchRec.Attr and faDirectory = faDirectory) then GetDirectories( Tree, Directory + SearchRec.Name, Tree.Items.AddChildObject(Item, SearchRec.Name, Pointer(1)), IncludeFiles ) else if IncludeFiles then Tree.Items.AddChild(Item, SearchRec.Name); until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; end; function TreeNodePath(node: TTreeNode; delimiter: Char = PathDelim): string; begin if Assigned(node) then Result := TreeNodePath(node.Parent, delimiter) + delimiter + node.Text else Result := ''; end; //zeigt die tree-list view an procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); begin Caption := TreeNodePath(Node);//akt. makiertes element im treeview driveletter := combobox1.Text;//combobox zum string delete(driveletter, length(driveletter),2);//string kuerzen label1.caption := driveletter+TreeNodePath(Node);//letter+path end; procedure TForm1.Button1Click(Sender: TObject); var Node: TTreeNode; Path: string; Dir: string; begin Dir := combobox1.text; Screen.Cursor := crHourGlass; TreeView1.Items.BeginUpdate; try TreeView1.Items.Clear; GetDirectories(TreeView1, Dir, nil, True); finally Screen.Cursor := crDefault; TreeView1.Items.EndUpdate; end; end; procedure TForm1.Button2Click(Sender: TObject); begin List_Drives;//refresh fuer die drives end; gibts da noch was anderes was einfacher ist? oder wie wuerdet ihr das anstellen? @stifflersmom ="ok ist irgendwie doof",...besser?^^ o0o |
Re: -Suchfunktion-Dateien und Ordner namen abgleichen
Zitat:
Aber zu Deinem Problem: Wie wäre es wenn Du zwei Tabellen (Datenbank) benutzt um einmal die Verzeichnisnamen und einmal Deine Dateinamen aufzunehmen. Dann könntest Du mit hilfe dieser beiden Tabelen wesentlich schneller die Übereinstimmungen finden, und müsstest nicht diese Datei-Verzeichnissuche übder Festplatte zig-mal starten. Moin |
Re: -Suchfunktion-Dateien und Ordner namen abgleichen
ehm joar das mit der datenbank is denk ich mal keine so schlechte idee^^
aber was fuer eine DB?:D ich hab mit denen nich all zu viel ahnung und erfahrung und daher will ich nich mit firebird etc rumfuchteln^^ ne txt datei wuerde es doch auch bringen oder passt das mit der performance nich?^^ o0o |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz