Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Nach enthaltenem Text in einer HTML-Datei suchen (https://www.delphipraxis.net/30406-nach-enthaltenem-text-einer-html-datei-suchen.html)

sniffy 24. Sep 2004 07:49


Nach enthaltenem Text in einer HTML-Datei suchen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Jo.

Ihr kennt ja alle die Suchoption im Windows. Da hat mann zwei möglichkeiten nach einer Datei zu suchen.
Mann kan direkt nach dem Dateinamen suchen oder nach einem bestimmten Text in einer Datei. Ich programmier gerade ein Tool das sowas können soll. Das mit dem Dateinamen suchen hab ich schon hinbekommen, aber das zweite noch nicht. Das Programm soll bestimmte wörter in der HTML-Datei suchen und wenn er sie gefunden hat soll er sie in einer ListBox anzeigen. In meinem Fall alle Wörter die mit cd_ und ld_ anfangen.

Ich hab noch Bild im Anhang damit alle wissen was ich meine.

Ich will nach "Enthaltener Text" suchen, wie im Bild.

Hat jemand ne Idee, oder schon ein fertigen Code dafür?

Wäre sehr dankbar.

mumu 24. Sep 2004 08:10

Re: Nach enthaltenem Text in einer HTML-Datei suchen
 
naja das ist doch eigentlich ganz leicht.

als erstes musst du alle html-dateien in einem verzeichnis bzw. eventuell incl. unterverzeichnisse auflisten. danach öffnest du eine datei nach der anderen und suchst in der datei nach dem gewünschten text.

fang doch einfach mal damit an und sag, wo du nicht mehr weiterkommst. dann schmeisst du hier ein bisschen code rein und wir alle werden dir helfen ;-)

sniffy 24. Sep 2004 08:15

Re: Nach enthaltenem Text in einer HTML-Datei suchen
 
Danke für die schnelle Antwort!

Soweit hab ich das programmiert das ich die Dateien einzeln öffnen und durchsuch kann.
Ich will aber das das Tool mir die Strings sofort anzeigt wenn ich auf ein Button "Verzeichnis durchsuchen" klicke, weil das ein paar hudert HTML-Datein sind. Die alle einzeln zu öffnen wäre mühsam.

Das geht doch bestimmt irgendwie.

mumu 24. Sep 2004 08:20

Re: Nach enthaltenem Text in einer HTML-Datei suchen
 
poste mal plz ein bisschen code, dann kann ich dir besser helfen...

naja das machst du doch in ner for schleife die alle öffen, ich würde alle dateien in ne stringlist laden und dann folgendes machen

Delphi-Quellcode:
var htmldateien: tstringlist;

htmldateien := tstringlist.create;

//hier mit htmldateien.add('datei.html')... alle hinzufügen

for i:=0 to htmldateien.count-1 do
begin
  //1.datei öffnen
  //2.nach string suchen
  //3.in ausgabe speichern
end;

sniffy 24. Sep 2004 08:32

Re: Nach enthaltenem Text in einer HTML-Datei suchen
 
OK.

Hier ist der Code der fürs suchen verantworltlich ist wenn die HTML-Datei geöffnet ist.

Delphi-Quellcode:
procedure TForm1.Panel2Click(Sender: TObject);
var i,p: integer;
    s: string;
begin
     for i := 0 to RichEdit1.Lines.Count - 1 do
     begin
     if Pos('cd_', RichEdit1.Lines.Strings[i]) +
        Pos('ld_', RichEdit1.Lines.Strings[i]) > 0 then
     begin
     s :='';

     {Die aktuelle Zeile wird nach der Zeichenfolge "cd_" und "ld_" durchsucht
     und bei Erfolg ab der gefundenen Position ausgelesen, bis ein
     Leerzeichen auftritt...}

     for p := Pos('cd_', RichEdit1.Lines.Strings[i]) +
              Pos('ld_', RichEdit1.Lines.Strings[i]) to
              Length(RichEdit1.Lines.Strings[i]) do
     if RichEdit1.Lines.Strings[i][p] <> ' ' then
     s := s + RichEdit1.Lines.Strings[i][p]
     else
     break;

     {Falls das gefundene Attribut nicht mit einem Leerzeichen abschließt,
     werden hier noch anhängende Textzeichen entfernt...}

     while
     Pos(s[Length(s)], '..;!")]}''>') > 0 do
     Delete(s, Length(s), 1);
     ListBox1.Items.Add(s);
    end;
  end;

     // Die Zahl der gefundenen Attribute in Label1 anzeigen...

     if
     ListBox1.Items.Count > 0 then
     label1.Caption := IntToStr(ListBox1.Items.Count) +' Attribut(e) gefunden.'
     else
     label1.Caption := 'Kein(e) Attribut(e) gefunden.';
     Label1.Show;
     Panel2.Hide;
end;

sniffy 24. Sep 2004 14:45

Re: Nach enthaltenem Text in einer HTML-Datei suchen
 
hat wirklich keiner einen Vorschlag? :?:

Ultimator 24. Sep 2004 14:58

Re: Nach enthaltenem Text in einer HTML-Datei suchen
 
Beschreib doch erstmal, was genau passiert.
Gibts ne Fehlermeldung, wenn ja, was steht drin, oder passiert gar nix. Ein paar Infos brauchen wir schon ;-)

alcaeus 24. Sep 2004 15:18

Re: Nach enthaltenem Text in einer HTML-Datei suchen
 
Hi sniffy,

lade den Inhalt einer HTML-Datei in ein Memo. Dann kannst du mit
Delphi-Quellcode:
Pos('cd_', Memo1.Text)
automatisch das gesamte Memo durchsuchen.
Beispiel:
Delphi-Quellcode:
function DurchsucheHTMLDatei(DateiName: String): Boolean;
var
  MeinMemo: TMemo;
begin
  MeinMemo := TMemo.Create(nil);
  try
    MeinMemo.Lines.LoadFromFile(DateiName);
    Result := (Pos('cd_', MeinMemo.Text) +
               Pos('ld_', MeinMemo.Text)) > 0;
  finally
    MeinMemo.Free;
  end;
end;
Wichtig: Die Funktion ist nicht geschwindigkeitsoptimiert. Das andauernde Erstellen und Freigeben des Memos kostet Zeit und Speicher. Du solltest alles vereinen, d.h. Memo erstellen, Datei laden, durchsuchen, Memo löschen (MeinMemo.Lines.Clear), Datei laden, ..., Memo freigeben.

Greetz
alcaeus

sniffy 27. Sep 2004 10:02

Re: Nach enthaltenem Text in einer HTML-Datei suchen
 
Liste der Anhänge anzeigen (Anzahl: 1)
@alcaeus

Danke für deine Mühe, aber ich will die HTML-Datei(en) nicht in ein Memo oder RichEdit oder irgendwo öffnen.

@All
Ich glaub ihr wisst immer noch nicht was ich meine.
Ich hab jetzt das Tool was ich gerad am programmieren bin hochgeladen. Bitte klickt auf den Button "Info",
da steht ausführlich erklärt was ich genau meine. Ist als RAR-Datei gepackt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf