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
 
Balosh

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

AW: Volltextsuche mit Delphi

  Alt 21. Mai 2015, 07:59
Sry für die späte Meldung. Habe mittlerweile das Programm zu 95% lauffähig gemacht so wie ich es mir vorgestellt habe (Danke hierfür für die ganze Hilfe). Nur ein einziges Problem bleibt noch übrig:

Das am Anfang dieses Threads angesprochene Problem mit den .dfm Dateien. Habe den Code zwar mittlerweile so das er die Umbrüche und die Zeichen (z.B. " '+ " oder " +") vor der Suche rausnimmt, nur mein Problem ist das es bei mir vorkommen kann das zum Beispiel bei " Caption= ...." ein Wort mit Umlaut stehen kann und das wird ja in delphi zum Beispiel in #228 umgewandelt und damit hat das Programm irgendwie Probleme es umzusetzen. Mit .txt und .pas Dateien funktioniert alles ohne Probleme (z.B suche mit Umlauten, Umbrüchen usw.)

Hier mal der Code für die Suche in den Dateien:

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);
            slist.Text := UTF8Encode(slist.Text);
            slist.Text := StringReplace(slist.Text,'''+', '',[rfReplaceAll]);
            slist.Text := StringReplace(slist.Text,'''', '',[rfReplaceAll]);
            slist.Text := StringReplace(slist.Text,#13#10, '',[rfReplaceAll]);
            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;
Habt ihr vielleicht eine Lösung wie ich das Problem noch lösen kann? Und bitte seit gnädig mit mir was die bisherigen Befehle betrifft.
  Mit Zitat antworten Zitat
 


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 17:10 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-2025 by Thomas Breitkreuz