Hallo Community
Mit dem WebBrowsercontrol kriegt man via Document.Body.InnerText den Text einer Website, ohne HTML Tags. Nun arbeite ich gerade aus Performancegründen mit einem WebRequest. Gibt es schon vorgefertigte Methoden, welche alle HTML-Tags entfernen, oder muss ich da selber mit Regex ran? Die Strings sind wesentlich einfacher zu parsen, wenn die HTML-Tags entfernt sind. Hab bis jetzt noch nichts gefunden.
Gruss,
.unreal
Original von jofenchel
C# ist irgendwie komisch.......
Ich kann nicht nachvollziehen, was daran komisch sein sollte.
ein event kann nicht gefired werden, wenn nichts passiert.
wird das contextmenü nicht automatisch ausgeblendet, wenn es den focus verliert?
Hallo Moritz072
Darstellung form=new Darstellung(name,l,b,d);
daraus schliesse ich, dass dein Konstruktor der Darstellungsklasse 4 Parameter schluckt.
eine Methode kann nur ein Wert Zurückgeben, darum kann Darstellung(be.Anftakeoff()); gar nicht funktionieren.
Zahlenwerte würde ich nicht in Strings speichern. Mach ein Struct, oder ein Objekt.
Z.B ein Objekt SurfBrettProperties mit den Attributen gewicht, länge usw.
Beim ausrechnen erstellst du eine Instanz von SurfBrettProperties und gibst diese Zurück. Dem Konstruktor übergibst du dann diese SurfBrettProperty-Instanz.
Hallo zusammen
Klar gibt es noch x varianten, die HTML Seiten abzurufen. Ich habe mir ne eigene Klasse geschrieben, welche es mir konfortabler ermöglicht, einfache Webrequests zu machen (ohne das WebBrowser Control). Jedoch brauche ich das WebBrowser Control, weil mir dieses Control sehr viel arbeit abnimmt (HTTPS, Cookiehandling, Sessionhandling usw.). An HTTPS bin ich bis jetzt gescheitert ohne das WebBrowserconntrol.
Hi herbivore,
Das habe ich mir auch gedacht. Jedoch habe ich gehofft, dass man einen WebBrowser "konfigurieren" kann, ohne andere IE instanzen zu beeinträchtigen!
Ich habe einen BeginDownload Event gesehen, jedoch funktioniert der nur mit Windows CE.
Scheint nicht möglich zu sein, so wie ich es mir vorgestellt habe. Trotzdem danke!
Gruss,
.unreal
Hallo Community
Ich arbeite gerade mit dem neuen WebBrowser Control. Da ich lediglich den Text benötige der Websites, würde ich gerne den Download von Mediadateien (Bilder, Flashes etc.) unterbinden.
Habe leider noch keinen konkreten Ansatz gefunden. Ist es überhaupt möglich? Hat jemand bereits erfahrungen?
Gruss,
.unreal
warum kommastellen abschneiden? lieber runden als abschneiden mit Math.Round()
hups, heissen die Runtimes doch auch Framework 🙁
ich meine natürlich das .NET Framework Redistributable Package!
danke für die Korrektur!
vor allem braucht der kumpel nicht das framework sondern die runtimes (:
versuch statische methoden zu vermeinden. ich glaube, dass du den unterschied gar nicht wirklich kennst. darum rate ich dir, in einem buch über oo ein bisschen zu lesen 🙂
gruss,
.unreal
Hallo Merkur76
System.Globalization.CultureInfo.CurrentCulture
so kriegst du ein CultureInfo. Da drinn ist alles wichtige gespeichert.
Gruss,
.unreal
edit: das liest die ländereinstellungen aus der systemsteuerung aus
Original von jofenchel
Hallo Programmierhans,deinen Vorschlag habe ich ausprobiert.
Geht leider nicht. Bei mir ist dann das ganze System tot.
Musste danach meinen Laptop neu boote.Thread.Sleep(1000); //paust 1 Sekunde Application.DoEvents(); // Events abarbeiten (damit das UI nicht einfriert)
JoFenchel
das funktioniet doch nicht, weil der zuesrt sleept, und dann das gui aktualisiert, somit ist das gui auch ne sekunde gefreezed...
Original von Programmierhans
Nur für einen Test müsste folgendes reichen...Thread.Sleep(1000); //paust 1 Sekunde
Application.DoEvents(); // Events abarbeiten (damit das UI nicht einfriert)
wenn man
Thread.Sleep(10000);
++i;
machen würde, dann würde das ++i erst stattfinden, wenn der thread 10000 ms gesleept hat. warum ist das bei Application.DoEvents(); nicht so?
Original von Afrokalypse
kann es sein dass du RegexOptions.Multiline meinst?
nein
singleline:
Specifies single-line mode. Changes the meaning of the dot (.) so it matches every character (instead of every character except\n).
Regex.Singleline, ganz vergessen 🙁
warum "suchst" du einen regex? DIE gelegenheit was zu lernen!
versuch es selber, und frage, wenn du fragen/probleme hast
Windows meldet dass kein virtueller Speicher mehr zur Verfügung steht und erst dann das Programm mit ner OutOfMemoryException abschmiert.
ist doch logisch. beim autofahren nützt dir eine baustellenwarntafel auch nix, wenn sie nach der baustelle kommt
ich glaube, dass er mit kompliziert die formel meinte... diese kann man nicht sehr gut mit dem debugger verfolgen...
wenn du noch nie programmiert hast, rate ich dir, zuerst etwas in einer sprache ohne oo zu programmieren. (z.b c)
dort lernst du vieles grundlegendes (variablendeklaration, funktionen usw) die du in oo zwingend brauchst. gehe schrittweise vor, und erschlag dich nicht mit einer tonne von informationen 😉
mein tipp, resp. so habe ich es gemacht
mit nur anschauen wird man nicht schlau, hirn einschalten und dann klappts... ich merk das wenn ich müde bin.. dann guck ich den code nur an, studiere aber nicht viel, kapiere darum auch fast nix (:
kann ich nur unterstreichen! ich hab mich schon oft gefragt, was schneller ist 🙂
sauber sache!
studier es halt 🙂 es ist übrehaupt nicht kompliziert, sondern genial 🙂
Original von herbivore
Hallo .unreal,dass es einen Unterschied gibt, ist schon klar, aber so groß ist der letztendlich gar nicht. Jedenfalls ist der Unsinn, den man mit statischen Variablen treiben kann, genauso groß wie bei globalen Variablen. Deshalb sollte man sie vermeiden. Erst recht, wenn man vor hatte, sie als Ersatz für gloable Variablen zu benutzen.
herbivore
es ging mir ja auch nicht darum, jemandem auf die finger zu klopfen, sondern aufzuklären! es ist erstaunlich wie viele solche details gar nicht wissen 🙁
entweder liest du zeile für zeile ein, und parsest (doofes wort in deutsch 😉) diese, oder du liest zuerst die ganze datei in eine variable ein, und parsest diese dann
er hat nicht geschrieben, dass er die daten kriegt, und nicht ändern kann. logisch ist umkonvertieren einen mehraufwand, hätte er aber diese daten selber geschrieben, wäre xml die lösung gewesen.
sowas parsen ist eigenltich nicht wirklich schwierig. regex oder mit substring rumfummeln 😉
achtung: ruhezustand != stand by
drück mal shift beim beenden dialog (beim lunastyle)
im ruhezustand schaltet die hd ab
Original von Quallo
Ich glaube da gibt es den is-operator.
Also if(value is System.DateTime)
du glaubst? es stimmt 😉
seinbar benutzst du VS 2003 --> FrameWork 1.1
ich meine den System.Windows.Forms.WebBrowser vom FrameWork 2.0
du brauchst vs 2005 für das framework 2.0 (beta ist kostenlos erhältlich)
gruss,
.unreal
bevor du die formulare füllen kannst, muss die seite da sein, damit das webbrowser control zugriff auf die formulare hat. wenn du die formularseite nicht aufrufen willst, dann geht das nur über die httpwebrequestklasse. allerdings wirst du einen grösseren programmieraufwand haben
gruss,
.unreal
warum speicherst du diese daten nicht in einer xml datei? die ist einfacher zu parsen, resp. es hat gibt schon klassen dazu!
es gab hier kürzlich enien thread, wie man einen laufwerksbuchstaben ausliest -> suchfunktion
ich würde besser den shutdown verhindern, als diesen abzubrechen!
ansonsten --> cmd-> shutdown -a
das webbrowsercontrol nimmt dir ganz schön die arbeit weg! cookiehandling, https usw., hast du alles beim httprequest nicht, resp. du musst es selber programmieren!
wunderbar, funktioniert!
danke für die schnelle antwort!
eine andere Frage zum WebBrowser:
Wenn eine Page mehrere Frames hat, wird der DocumentCompleted event mehrmals aufgerufen (ist auch logisch, es sind mehrere dokumente). Wie kann ich das umgehen? Weil der Event mehrmals gefeuert wird, krieg ich die geparsten Daten immer doppelt und mehrfach. Gibt es ein Attribut, oder muss ich selber ein Flag setzten?
Gruss,
.unreal
was hab ich mir da nur überlegt grübel
Hallo Community
Eins vorweg: ich verwende .NET 2.0 Beta
Ich hab mir mithilfe der WebBrowser klasse (die super funktioniert) zugriff auf diverse pages verschaffen, ohne auf threads zu achten.
Login und Datenauslesen mit Regex funktioniert super. Jetzt will ich allerdings die Abfragen in einem Thread im Hintergrund abhandeln, damit ich die windows.forms aktualisieren kann, ohne dass sie "nicht reagieren". Ich habe die neue Klasse BackgroundWorker gefunden und sofort ausprobiert, allerdings funktionierte es nicht wirklich.
Ich denke, dass hier einige sich schon mit der neuen WebBrowser Klasse auseinandergesetzt haben, darum will ich euch fragen, wie ihr dieses Threadproblem gelöst habt. Das auslesen der Daten erfolgt schlussendlich immer in dem DocumentCompleted event, nur muss man ja warten, bis dieser Event gefeuert wird.
Es muss nicht dringend ein Codebeispiel her, es geht mehr um den Grundgedanken, und vieleicht ein zwei kleine Snippets.
Gruss,
.unreal
konstruktoren sehen nicht wie methoden aus, sie haben nämlich keinen rückgabeparameter! 😁
hallo herbivore
so wie es aussieht, werde ich in einigen tagen mit demselben problem konfrontiert! wenn ich was herausfinde, werde ich es hier posten
gruss,
.unreal
hast du es hingekriegt?
mindestens hast du mir geholfen 🙂 ich wusste nämlich nicht, wie ich auf den html-code der einzelnen frames komme!
gruss,
.unreal
warum brauchst du dieses setValue?
mach doch einfach TextBox.AppendText("neuer text"); oder TextBox.Text = text;