Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Volltextsuche mit Delphi (https://www.delphipraxis.net/184786-volltextsuche-mit-delphi.html)

p80286 27. Apr 2015 15:56

AW: Volltextsuche mit Delphi
 
Wenn Du hier
Delphi-Quellcode:
  if MatchesMask( Rec.Name, FileName) then
             Listbox1.Items.Add(Path + Rec.Name);
die gefundenen Dateien in eine Listbox einträgst, dann kannst Du ebensogut hier Deine Suche starten
Delphi-Quellcode:
 
if MatchesMask( Rec.Name, FileName) then
begin        
  Listbox1.Items.Add(Path + Rec.Name);
  PositionofText:=FindTextinFile(Filename,Texttofind);
end;
eine weitere Möglichkeit wäre es om OnClick-Event der Listbox (hoffentlich gibt's das) die Textsuche einzubinden.

Gruß
K-H

Balosh 29. Apr 2015 15:20

AW: Volltextsuche mit Delphi
 
Zitat:

Zitat von p80286 (Beitrag 1299427)
Delphi-Quellcode:
 
if MatchesMask( Rec.Name, FileName) then
begin        
  Listbox1.Items.Add(Path + Rec.Name);
  PositionofText:=FindTextinFile(Filename,Texttofind);
end;

Das war der entscheidende Hinweis. Das Programm läuft jetzt einwandfrei und liest in *.txt und *.pas Dateien ohne Probleme und gibt die jeweiligen Dateien in der Listbox an. Nun will ich dieses Problem mit den *.dfm Dateien lösen. Hat da jemand schon Erfahrung mit gemacht und kann mir da ein paar Tipps und Hinweise geben?

DeddyH 29. Apr 2015 15:32

AW: Volltextsuche mit Delphi
 
Welches Problem denn? Seit Delphi 4(?) werden DFM standardmäßig im Textformat gespeichert. Solltest Du doch auf eine binäre stoßen, wirst Du es daran merken, dass Du nur "Zeichensalat" ausliest. In dem Fall kannst Du dann die genannte Methode anwenden und solltest anschließend wieder lesbaren Text vor Dir haben.

Balosh 29. Apr 2015 15:48

AW: Volltextsuche mit Delphi
 
Ich meine das Problem mit den Umbrüchen im Bezeichner einer langen Textzeile. Kann natürlich sein das ich da nicht ganz auf dem aktuellen Stand bin und das mittlerweile nicht mehr so ist.

mkinzler 29. Apr 2015 15:59

AW: Volltextsuche mit Delphi
 
Auch Umlaute usw. werden codiert. Du müsstest die DFM Datei parsen und Dir ein "Art" DOM aufbauen, um das gewohle zu erhalten.

BUG 29. Apr 2015 17:13

AW: Volltextsuche mit Delphi
 
Zitat:

Zitat von mkinzler (Beitrag 1299692)
Du müsstest die DFM Datei parsen und Dir ein "Art" DOM aufbauen

Ich würde immer zuerst eine Art eventbasierten Parser analog zu SAX (um mal bei XML zu bleiben :mrgreen:) schreiben. Für eine Suche ist das ausreichend und einen Baum (wie DOM) kann man später immer noch damit bauen.

mkinzler 29. Apr 2015 17:15

AW: Volltextsuche mit Delphi
 
Er kann auch etwas "Fertiges" verwenden:

http://sourceforge.net/projects/dfmedit/files/dfmedit/

Balosh 7. Mai 2015 08:46

AW: Volltextsuche mit Delphi
 
Ich dreh noch am Rad. :evil:
Seit über einer Woche versuche ich die Sonderzeichen (ä,ö,ü,ß usw.) mit in die Suche einzubeziehen und bekomme es einfach nicht hin. Habe verschiedene Tipps aus dem Internet probiert aber nichts hat wirklich funktioniert.

Wie bekomme ich das in dieser Source gebacken:

Code:
procedure TMainSuche.FileSearch(const PathName, FileName: string);
var Rec : TSearchRec;
    Path: string;
    slist: TStringList;
begin
  Path := IncludeTrailingBackSlash(PathName);
  slist := TStringList.Create;
  try
    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
          begin
            slist.LoadFromFile(Path + Rec.Name);
            if pos(cbSucheT.Text, slist.Text)>0 then
              Listbox1.Items.Add(Path + Rec.Name);
          end;
      until FindNext(Rec) <> 0;
    end;
  finally
     FindClose (Rec);
     slist.free;
  end;
end;
Ich weiß echt nicht mehr weiter.

mkinzler 7. Mai 2015 09:13

AW: Volltextsuche mit Delphi
 
Wie meinst Du das? Pos müsste auch Umlaute finden oder meinst Du Alternativen ( ae für ä usw.)?

Balosh 7. Mai 2015 09:48

AW: Volltextsuche mit Delphi
 
Wenn ich zum Beispiel in einer Textdatei nach einem Wort mit 'ä' Suche bringt er mir die Meldung:

"Keine Zuordnung für Unicode-Zeichen in der Multibyte-Zielcodeseite vorhanden."

Da ich ja die "Volltextsuche" sowieso auf Unicode Basis machen wollte und alles bisher auch funktioniert nur das hier nicht, würde ich das wenn es geht auch noch irgendwie hinbekommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.
Seite 5 von 6   « Erste     345 6      

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