Seite 1 von 3
HTML Dateien durchsuchen mit PB
Verfasst: 14.11.2014 15:32
von N_Gnom
Ich habe einen Ordner mit unterordnern in denen sich viele HTML Dateien befinden.
In diesen möchte ich den Text welcher die jeweilige html datei letztendlich ausgibt durchsuchen.
Das ganze html zeugs soll dabei aber nicht durchsucht werden, sondern eben nur der anzeigbare Text.
Letztlich möchte ich bei einem Treffer die html Seiten wo etwas gefunden wurde in einer temporären html seite als liste mit anklickbaren links speichern und diese anzeigen.
Vielleicht kann mir da ja jemand paar tips geben.
edit: die Dateinamen sollen bei der Suche auf Wunsch auch mit durchsucht werden.
Re: HTML Dateien durchsuchen mit PB
Verfasst: 14.11.2014 16:31
von NicTheQuick
Können die HTML-Seiten JS und/oder komplexes CSS enthalten? Das wäre dann schwierig immer nur den Text rauszufiltern, der auch tatsächlich angezeigt wird.
Wenn es aber nur darum geht die HTML-Tags heraus zu filtern und möglicherweise Skripte, dann sollte das ganz einfach gehen, indem man einfach eine kleine Procedure schreibt, die die HTML-Tags entfernt vor dem Suchen. Wenn es allerdings valides XHTML ist, könntest du auch den XML-Parser von PB nutzen und einfach alle Knoten durchsuchen.
Re: HTML Dateien durchsuchen mit PB
Verfasst: 14.11.2014 18:55
von N_Gnom
Also css wird per externes stylesheet genutzt.
Und die Scripte die verwendet werden kommen alle vorm BODY, den man ja dann als Einstiegspunkt nehmen könnte.
Der Rest sind html tags für die Formatierung und Bilder einbinden.
Wie könnte man das Rausfiltern?
< suchen und alles bis > ignorieren?
Müsste ich dann alles was in der Datei übrigbleiben würde in eine temporäre Datei speichern?
Für einen Denkanstoss wäre ich dankbar.
Ich hab mit den Filecommands nämlich noch nie was gemacht.
Re: HTML Dateien durchsuchen mit PB
Verfasst: 15.11.2014 22:05
von Sven
Mal eine Idee, wie Du Dir das HTML-Parsen sparen könntest:
Die Datei in einem Webgadget öffnen, damit fallen die HTML-Tags weg. Den angezeigten Text in die Zwischenablage kopieren, da sollte der dann als Plaintext drinstehen. Die Zwischenablage in einen String speichern, den Du normal nach Deinem Suchstring durchsuchst.
Die Dateinamen musst Du getrennt durchsuchen, aber die musst Du eh parsen.
Re: HTML Dateien durchsuchen mit PB
Verfasst: 16.11.2014 00:06
von N_Gnom
wie funktioniert das?
damit kenn ich mich nun garnicht aus
Re: HTML Dateien durchsuchen mit PB
Verfasst: 16.11.2014 00:21
von Derren
Vergiss XML.
Das hier ist der PB-Code nur um dieses Bisschen XML zu parsen.
Code: Alles auswählen
<document>
<entry>
<title value="Die Bibel" />
<author value="*list">
<li value="Matthäus" />
<li value="Markus" />
<li value="Lukas" />
<li value="Andere" />
</author>
<description value="*data">Zum Inhalt:
- Das alte Testament
- Das neue Testament
- Erläuterungen</description>
</entry>
<entry>
<title value="Programmieren mit PB" />
<author value="Basic, Pure" />
<dateOfPurchase value="1999" />
</entry>
</document>
Im Prinzip musst du einfach nur von ">" zu "<" springen (mit FindString()) und dann alles dazwischen steht temporär in eine Linked List oder so speichern, und diese dann am Ende nach deinem Text zu durchsuchen.
Anfangen kannst du dann eigentlich bei "<body". Sehr unwahrscheinlich dass du auf eine HTML-Datei triffst in der "< body >" steht, oder dass "<body" in einem JavaScript Segment im Header vorkommt.
Verfasst: 16.11.2014 12:49
von CodeCommander
~ DELETE ~
Re: HTML Dateien durchsuchen mit PB
Verfasst: 16.11.2014 13:22
von RehW
CodeCommander hat geschrieben:Typisch Anfänger-Vorgehensweise. Man macht nicht mit FindString und so. Viel zu langsam. Stichwort: Reguläre Ausdrücke
Warum gibst Du kein Beispiel an? Du scheins ja kein Anfäger mehr zu sein, wenn ich Deinen Beitrag so lese. Ausserdem fällt mir auf das ich in letzter Zeit viele Beiträge von Dir lese die nicht hilfreich sind und nur nerven. Zum Teil kommen sie mir auch ignorant und beleidigend vor. Wenn Du kein Beispiel vorlegen willst, dann antworte doch einfach nicht.
Sorry, wenn ich jetzt auch nichts zum Thema schreibe, aber ich musste das jetzt einfach mal loswerden.
Verfasst: 16.11.2014 14:22
von CodeCommander
~ DELETE ~
Re: HTML Dateien durchsuchen mit PB
Verfasst: 16.11.2014 14:45
von Micha122
wie funktioniert das?
damit kenn ich mich nun garnicht aus
Sven meinte so etwas:
Code: Alles auswählen
Global Window_3
Global WebView_0, Button_0, Editor_0
Declare Text_holen()
Procedure OpenWindow_3(x = 0, y = 0, width = 970, height = 500)
Window_3 = OpenWindow(#PB_Any, x, y, width, height, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
WebView_0 = WebGadget(#PB_Any, 30, 10, 910, 360, "http://forums.purebasic.com/german/viewtopic.php?f=3&t=28513&sid=08c62833b41c1e7edaeebbc907940d55")
Button_0 = ButtonGadget(#PB_Any, 30, 460, 100, 30, "Text holen")
Editor_0 = EditorGadget(#PB_Any, 520, 380, 420, 110, #PB_Editor_WordWrap)
EndProcedure
Procedure Window_3_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case Button_0
Text_holen()
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
OpenWindow_3()
Repeat
event = WaitWindowEvent()
Until Window_3_Events(event) = #False
End
Procedure Text_holen()
text.s=GetGadgetItemText(WebView_0,#PB_Web_SelectedText)
SetGadgetText(Editor_0,text)
EndProcedure
Ist leider nicht sehr komfortabel, weil man den Text per Maus zunächst selektieren muss.
@CodeCommander:
Ein kurzes Beispiel würde mich auch interessieren.
Gruß