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ß