AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Volltextsuche mit Delphi

Ein Thema von Balosh · begonnen am 21. Apr 2015 · letzter Beitrag vom 22. Mai 2015
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#31

AW: Volltextsuche mit Delphi

  Alt 24. Apr 2015, 14:48
Jetzt noch

Delphi-Quellcode:
if MatchesMask( Rec.Name, FileName) then
          Listbox1.Items.Add(Path + Rec.Name);
Dann wird die Maske für dateien wieder beachtet.
Markus Kinzler
  Mit Zitat antworten Zitat
Balosh

Registriert seit: 21. Apr 2015
31 Beiträge
 
Delphi 10 Seattle Professional
 
#32

AW: Volltextsuche mit Delphi

  Alt 24. Apr 2015, 15:36
Jetzt noch

Delphi-Quellcode:
if MatchesMask( Rec.Name, FileName) then
          Listbox1.Items.Add(Path + Rec.Name);
Dann wird die Maske für dateien wieder beachtet.

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.

Geändert von Balosh (24. Apr 2015 um 16:03 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#33

AW: Volltextsuche mit Delphi

  Alt 24. Apr 2015, 16:00
Du hast ja im FindFirst angegeben, dass alle Dateien gefunden werden sollen. MatchesMask überprüft nun ob der Dateiname zur Suchmaske passt.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#34

AW: Volltextsuche mit Delphi

  Alt 24. Apr 2015, 18:42
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 Delphi-Referenz durchsuchenObjectBinaryToText umwandeln, bevor du darin alles als Text durchsuchen kannst.
$2B or not $2B
  Mit Zitat antworten Zitat
Balosh

Registriert seit: 21. Apr 2015
31 Beiträge
 
Delphi 10 Seattle Professional
 
#35

AW: Volltextsuche mit Delphi

  Alt 27. Apr 2015, 15:52
Ich glaub du bist hier in dem Unterforum falsch?
Wusste nicht ob ich hier richtig bin. Wenn die Aussage stimmt bitte ich einen der Mods den Thread zu verschieben.

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:
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;
Stimmt das was ich bisher eingeben habe (ich weiß ist nicht viel)?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#36

AW: Volltextsuche mit Delphi

  Alt 27. Apr 2015, 16:05
Was soll denn
Zitat:
if (Rec.attr in [faDirectory, (faDirectory+faArchive)]) then
bezwecken?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#37

AW: Volltextsuche mit Delphi

  Alt 27. Apr 2015, 16:16
Es entspricht Folgendem
Delphi-Quellcode:
//if (Rec.attr = faDirectory) or (Rec.attr = (faDirectory + faArchive)) then
if (Rec.attr = faDirectory) or (Rec.attr = (faDirectory or faArchive)) then
aber gemeint ist bestimmt eigentlich Jenes
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#38

AW: Volltextsuche mit Delphi

  Alt 27. Apr 2015, 16:20
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Balosh

Registriert seit: 21. Apr 2015
31 Beiträge
 
Delphi 10 Seattle Professional
 
#39

AW: Volltextsuche mit Delphi

  Alt 27. Apr 2015, 16:35
Es entspricht Folgendem
Delphi-Quellcode:
//if (Rec.attr = faDirectory) or (Rec.attr = (faDirectory + faArchive)) then
if (Rec.attr = faDirectory) or (Rec.attr = (faDirectory or faArchive)) then
aber gemeint ist bestimmt eigentlich Jenes
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.
Ok so kann man es auch machen hast recht. So wie ich es gemacht habe funktioniert es zwar auch aber deine Variante ist die richtige im nachhinein.
Aber das ist keine Antwort auf meine Frage.

Geändert von Balosh (27. Apr 2015 um 16:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#40

AW: Volltextsuche mit Delphi

  Alt 27. Apr 2015, 16:41
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 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