AW: Volltextsuche mit Delphi
Jetzt noch
Delphi-Quellcode:
Dann wird die Maske für dateien wieder beachtet.
if MatchesMask( Rec.Name, FileName) then
Listbox1.Items.Add(Path + Rec.Name); |
AW: Volltextsuche mit Delphi
Zitat:
Was meinst du damit, versteh ich nicht ganz? Was soll MatchesMask genau bringen? Kenne das nur flüchtig. EDIT: Frage hat sich erledigt. :) Danke für den Hinweis. |
AW: Volltextsuche mit Delphi
Du hast ja im FindFirst angegeben, dass alle Dateien gefunden werden sollen. MatchesMask überprüft nun ob der Dateiname zur Suchmaske passt.
|
AW: Volltextsuche mit Delphi
Ich glaub du bist hier in dem Unterforum falsch?
Eine Volltextsuche, die es schon in der Delphi-IDE gibt, bzw. Eine, welche du dort einbauen willst, das wäre hier richtig, aber wenn du nur ein Suchprogramm in Delphi/Pascal schreiben willst, also das hat mit der IDE nichts zu tun. PS: DFMs durchsuchen, auch wenn es sie immer seltener gibt, da Delphi bereits seit längerem Diese standardmäßig im Textformat abspeichert, aber dennoch kann es vorkommen, daß du eventuell auf eine Binärversion stößt und Diese müsstest du somit zuerst binär einlesen (TStream) und kannst sie dann mit ObjectBinaryToText umwandeln, bevor du darin alles als Text durchsuchen kannst. |
AW: Volltextsuche mit Delphi
Zitat:
Nun zu meiner Frage bzw. Problem Habe das Programm jetzt soweit am laufen das es die Unterordner und Dateien anzeigt. Nun will ich aber noch dass das Programm in den Dateien nach Wörter (Strings) sucht. Dazu habe ich noch eine zusätzlich Combobo in das Formular "eingebaut". Nun meine Frage wie kombiniere ich die Zwei Aufgaben (Suche nach Dateien und Suche In Dateien). Habe schon etwas angefangen (auskommentiert) aber komme nun nicht weiter:
Code:
Stimmt das was ich bisher eingeben habe (ich weiß ist nicht viel)?
procedure TMainSuche.FileSearch(const PathName, FileName: string);
var Rec : TSearchRec; Path: string; { *sl: TStringList;* } { *i: Integer;* } begin Path := IncludeTrailingBackSlash(PathName); try { *sl := TStringList.Create;* } { *sl.LoadFromFile(Path);*} if FindFirst (Path + '*', faAnyFile, Rec) = 0 then begin repeat if (Rec.attr in [faDirectory, (faDirectory+faArchive)]) then begin if Checkbox1.Checked then begin if (Rec.Name <> '.') and (Rec.Name <> '..') then FileSearch( Path+Rec.Name , FileName); end; end else if MatchesMask( Rec.Name, FileName) then Listbox1.Items.Add(Path + Rec.Name); until FindNext(Rec) <> 0; end; finally FindClose (Rec); end; end; |
AW: Volltextsuche mit Delphi
Was soll denn
Zitat:
|
AW: Volltextsuche mit Delphi
Es entspricht Folgendem
Delphi-Quellcode:
aber gemeint ist bestimmt eigentlich Jenes
//if (Rec.attr = faDirectory) or (Rec.attr = (faDirectory + faArchive)) then
if (Rec.attr = faDirectory) or (Rec.attr = (faDirectory or faArchive)) then
Delphi-Quellcode:
//if faDirectory in Rec.attr then
if Rec.attr and faDirectory <> 0 then Attribute/Bits per Addition zu verbinden ist schonmal falsch, denn das macht man per OR, vorallem da einige der Konstanten mehrere Bits umfassen. Dateinamen suchen (notfalls Alle), wenn Dateiname gefunden, dann jede Datei nacheinander in die StringListe laden und dort drinnen suchen. |
AW: Volltextsuche mit Delphi
Dachte ich mir auch schon, aber da vorherige Versionen den "üblichen" Binärvergleich mit faDirectory hatten und das nun geändert wurde, frage ich lieber mal nach.
|
AW: Volltextsuche mit Delphi
Zitat:
Aber das ist keine Antwort auf meine Frage. :) |
AW: Volltextsuche mit Delphi
Statt einfach nur die Datei der ListBox hinzuzufügen, musst Du sie halt vorher öffnen und nach dem String durchsuchen. Das würde ich aber eher in eine eigene Funktion verfrachten, sonst wird das zu unübersichtlich.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz