none
html in text speichern RRS feed

  • Frage

  • Hallo,
    ich möchte jetzt nicht unverschämt sein aber

    gibt es denn auch eine möglichkeit HTML Dateien die ich gedownloaded habe in ein txt format zu speichern ?

    dann hätte ich meine ganze mühe mit Filtern (Replace) gespart.

    vielen lieben dank
    bernd
    Samstag, 5. Dezember 2009 14:17

Antworten

  • Hallo Bernd,

    warum RTF? Du hast HTML Input behandelt. Wenn Du HTML Elemente entfernst, gibt es auch keine Information über einen Zeilenumbruch, außer im reinen Quelltext vorhandenem. Ggf. musst Du hier auch einfache Lf zu CrLf wandeln, je nach Ausgabemedium. Ggf. musst Du den Text auch nachformatieren und Zeilenumbrüche manuell einfügen, wenn die von Dir gewünschte Zeilenlänge erreicht ist. Das hängt halt von dem von Dir gewünschten Ergebnis ab.

    Aber bisher hast Du uns ja nicht wirklich verraten, was Dein Ziel ist und was Du erwartest. Noch hast Du verraten, welche der genannten Möglichkeiten Du ausprobiert hast. Ich nehme an, es waren nicht alle.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Montag, 7. Dezember 2009 20:57
    Moderator

Alle Antworten

  • Hallo Bernd,

    was hast Du vor? Eingebundene Ressourcen wie z.B. Bilder gehen in der Textdarstellung verloren.

    Schöne Grüße
    Oliver
    Sonntag, 6. Dezember 2009 10:54
  • Hallo Oliver,
    ich kann z.B. aus meinem Forum oder Hompage seiten downloaden und dann in einer TextBox den Code anzeigen lassen.
    Bisher habe ich mit Replace alle HTML sachen rausgefiltert. Aber das nimmt ja kein ende mehr.
    Nun dachte ich, wenn doch eine rtf seite einfach so als txt gespeichert werden kann, warmum gibt es nicht soetwas für HTML.
    Also url downloaden. html rausfiltern und dann in TextBox anzeigen.

    sollte es dich interessieren dann schaud dir mein programm mal an.
    es ist noch nicht fertig. aber das was funktioniert sieht schonmal gut aus.

    danke dir
    bernd


    http://proggerfuny.foren-city.de/topic,214,-proggerfuny-codebox-version-1-0-0-0-ist-fertig.html
    Sonntag, 6. Dezember 2009 16:19
  • Hallo Bernd,

    Das Herausfiltern über String.Replace ist in der Tat nicht die effektivste Möglichkeit, die HTML Tags zu entfernen. Hier würde man schon eher über Regular Expressions gehen und selbst das ist noch mit einigem Aufwand verbunden:

    Convert HTML to Plain Text
    http://www.codeproject.com/KB/HTML/HTML_to_Plain_Text.aspx

    Als einfache Lösung bietet sich das WebBrowser Control an. Über Document.Body.OuterText bekommst Du den reinen Text des HTML Dokuments:

        Dim lWeb As New WebBrowser
        Dim lText As String
    
        lWeb.Navigate("http://www.vb-hellfire.de")
    
        Do While lWeb.ReadyState <> WebBrowserReadyState.Complete
          Application.DoEvents()
        Loop
    
        If lWeb.Document IsNot Nothing AndAlso _
           lWeb.Document.Body IsNot Nothing Then
          lText = lWeb.Document.Body.OuterText
        End If

    Ist von der Ressourcennutzung nicht ganz ohne, da im Hintergrund quasi eine Internet Explorer Instanz gestartet wird. Ggf. lässt sich das auch alleine über die MSHTML Library erreichen.

    Das HtmlAgilityPack enthält auch eine Komponente zur Konvertierung von HTML zu Text:
    http://www.codeplex.com/htmlagilitypack

    Als weitere Option bietet sich der Plain-Text Webbrowser Lynx an, dessen Ausgabe man sich entsprechend umleiten kann. Vorteil dürfte vor allem eine bessere Darstellung sein, da hier nicht nur einfach HTML Tags entfernt werden.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Sonntag, 6. Dezember 2009 17:23
    Moderator
  • Hallo Thorsten,

    danke. Ich schaue mir die ganzen Beiträge mal an. Ich denke aber da werde ich eine Lösung für mich fidnen.


    danke wie immer
    bernd
    Sonntag, 6. Dezember 2009 17:40
  • So,

    ich habe es versuccht. geht aber nicht. genau wie bei alle meinen versuchen.

    er nimmt zwar die rtf zeichen raus, jedoch macht er fehler bei den zeilenumrüchen.

    die verschluckt er teilweise.

    gibt es noch eine möglichkeit ?

    danke

    bernd

    Montag, 7. Dezember 2009 13:43
  • Hallo Bernd,

    warum RTF? Du hast HTML Input behandelt. Wenn Du HTML Elemente entfernst, gibt es auch keine Information über einen Zeilenumbruch, außer im reinen Quelltext vorhandenem. Ggf. musst Du hier auch einfache Lf zu CrLf wandeln, je nach Ausgabemedium. Ggf. musst Du den Text auch nachformatieren und Zeilenumbrüche manuell einfügen, wenn die von Dir gewünschte Zeilenlänge erreicht ist. Das hängt halt von dem von Dir gewünschten Ergebnis ab.

    Aber bisher hast Du uns ja nicht wirklich verraten, was Dein Ziel ist und was Du erwartest. Noch hast Du verraten, welche der genannten Möglichkeiten Du ausprobiert hast. Ich nehme an, es waren nicht alle.

    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Montag, 7. Dezember 2009 20:57
    Moderator
  • Hallo Thorsten,
    ich habe mich im Thread vertan.
    Aber ich bastel an beiden lösungen rum, solange bis ich es habe. deine Beiträge werden mir helfen.

    danke
    bernd
    Dienstag, 8. Dezember 2009 15:37