Bestimmte Zeilen aus Quelltext auslesen

Sniperdennis

Mitglied
Hallo,
undzwar wollte ich wissen wie man bestimmte Zeilen aus einem Quelltext in eine Textbox hieneinbekommt. Ich hab mit hilfe eines anderen geschafft den ganzen Quelltext ausulesen doch mit einzelnen Zeilen konnte er mir nicht weiter helfen.
Bis jetzt sieht alles so aus:
Code:
Dim SiteHTML As String 
Inet1.Cancel 
Inet1.Protocol = icHTTP 
Inet1.AccessType = icDirect 
SiteHTML = Inet1.OpenURL(Trim$("http://beispiel.de"), icString) 
Text1Text = SiteHTML

Das "Internet Transfer Control" hab ich auch benutzt.
Ich hoffe ich könnt mir weiter helfen. Wenn es möglich währe ist ein Printbutton auch gut angebracht.
Z.b. sehen zwei Zeilen so aus

Der Text1 <br />
Der Text2 <br />

Wie bekommt man dan noch das <br /> weg?
Danke im Vorraus.

MfG Sniperdennis
 
Willkommen im Forum!

Wenn ich das richtig verstanden habe, möchtest Du aus einem HTML-Quelltext die HTML-Tags entfernen. Dazu kannst Du entweder die Replace()-Funktion oder Reguläre Ausdrücke verwenden.

Gruß
 
Also ich habs jetzt irgendwie geschafft doch die HTML-Tags sind noch dahinter ich hab gehört das man es so machen kann
Code:
sTeilstring = Mid(sGesamtstring, 5, 11)
habe aber keine Ahnung wie es geht, ich wer euch dankbar wenn ihr mir weiterhelfen könnt.

Das sieht bis jetzt so aus:
Code:
Private Sub Command1_Click()
Dim SiteHTML As String
Inet1.Cancel
Inet1.Protocol = icHTTP
Inet1.AccessType = icDirect
SiteHTML = Inet1.OpenURL(Trim$("http://beispiel.de"), icString)
Text1.Text = SiteHTML
End Sub

Private Sub Command2_Click()
Dim Datei As String
    Dim NR As Integer
    
    Datei = App.Path
    If Right$(Datei, 1) <> "\" Then
        Datei = Datei & "\"
    End If
    Datei = Datei & "Code.txt"
    
    NR = FreeFile
    Open Datei For Output As #NR
        Print #NR, Text1.Text
    Close #NR
End Sub

' Lesen einer bestimmten Zeile einer Textdatei
' sFilename:  vollständiger Dateiname
' LineToRead: Zeile, deren Inhalt zurückgegeben werden soll
' =========================================================
Public Function txt_ReadLine(ByVal sFilename As String, _
  ByVal LineToRead As Long) As String

  Dim F As Integer
  Dim sLine As String
  Dim lRow As Long

  lRow = 0
  ' Existiert die Datei ?
  If Dir$(sFilename) <> "" Then
  
    ' Datei zum Lesen öffnen
    F = FreeFile
    Open sFilename For Input As #F
    
    ' Solange einlesen, bis entweder Dateiende
    ' oder gewünschte Zeilennummer erreicht
    While Not EOF(F) And lRow < LineToRead
      lRow = lRow + 1
      Line Input #F, sLine
    Wend
    Close #F
  End If
  
  ' Dateiende wurde frühzeitig erreicht,
  ' oder Datei war nicht vorhanden
  If lRow < LineToRead Then _
    sLine = ""

  txt_ReadLine = sLine
End Function

Private Sub Command3_Click()
Text2.Text = txt_ReadLine("Code.txt", 628)
Text3.Text = txt_ReadLine("Code.txt", 629)
End Sub
 
Habe mir Deinen Gesamtsource nicht angeschaut,

aber per Replace ( StrText.replace("</br>","") ) ginge es, und wie schon
gesagt wurde, per regular Expressions (RegEx).

mfg chmee
 
Hallo,

also mit einer gewissen Bereitschaft, nach Informationen zu suchen, könnte man sich die Replace()-Funktion auch selbst anlesen.

Das grössere Problem an der Sache ist, dass es eben eine ziemlich lange Liste an HTML-Tags gibt, die Du alle abhandeln müsstest. Wenn Du jedoch ausschliessen kannst, dass sich im Content des Quelltextes eckige Klammern befinden, ist die Anwendung von Regulären Ausdrücken zu empfehlen.

Gruß
 
Jo ist ja jetzt alles schön und gut aber warum ist das falsch?
Code:
    Dim Text1, Text2, Text3, Vergleich
    Text1 = Text2.Text
    Text2 = "<br />"
    Text3 = " "
 
    Vergleich = Replace(Text1, Text2, Text3)
    Text2.Text Vergleich

Der soll den Text1 aus der Textbox2 nehmen und das <br /> durch ein lehrzeichen ersetzen und es danach in der Textbox2 anzeigen lassen. Nur hier bekomm ich ein fehler
Code:
Text1 = Text2.Text
was ist daran falsch? Hier ebenfalls
Code:
Text2.Text Vergleich
.
 
Hallo,

sowas kommt von sowas - könnte man sagen...

Du hast ein Steuerelement mit dem Namen Text1 und eine lokale Variable namens Text1 (was eine gruselige Programmierweise vieler Anfänger ist). Beim Programmstart stellt der Name Text1 eine Referenz auf das TextBox-Steuerelement dar. In dem Moment, in dem nun die lokale Variable Text1 angelegt wird, geht die Referenz auf das Steuerelement verloren. Und die Variable Text1 (in Deinem Fall als Variant) kennt die Eigenschaft .Text natürlich nicht und deshalb kommt sowas wie "Objekt erforderlich".
Beim letzten Fehler fehlt schlicht das "=".

Im Übrigen noch eine grundsätzliche Anmerkung für weitere Fragen: Bitte nicht einfach nur schreiben "ich bekomme einen Fehler...", sondern auch den Fehler dazu posten.

Gruß
 
Also das klappt jetzt. Aber wenn ich jetzt bei Text2 und Textb mehrere Wörter hinmachen will kommt der Fehler: Fehler beim Kompilieren: Erwartet: Anweisungsende

Code:
Dim Text1, Text2, Text3, Texta, Textb, Textc, Vergleich
    Text1 = Box1.Text
    Text2 = "<br />"  "inaktiv"
    Text3 = ""
    Texta = Box2.Text
    Textb = "<br />" "aktiv"
    Textc = ""
 
    Vergleich1 = Replace(Text1, Text2, Text3)
    Vergleich2 = Replace(Texta, Textb, Textc)
    Box1.Text = Vergleich1
    Box2.Text = Vergleich2
 
Vielleicht hilft Euch das hier weiter:

Code:
Option Explicit
'Einfügen
    Dim newText As String
    Dim newTextOben As String
    Dim newTextUnten As String

'AUSFILTERN :
    Dim txtDummy As String
    Dim nDummy As String
    Dim i As Long
    Dim j As Long
    
Private Sub Filtern()
'AUSFILTERN :
    
    txtDummy = Text1.Text
    nDummy = ""
    
    For i = 1 To Len(txtDummy)
        If Mid$(txtDummy, i, 1) = "<" Then
            For j = i + 1 To Len(txtDummy)
                If Mid$(txtDummy, j, 1) = ">" Then
                    Exit For
                Else
                    nDummy = nDummy & Mid$(txtDummy, j, 1)
                End If
            Next j
            Exit For
        End If
    Next i

'nDummy hat jetzt den gefilterten Text
    Call Einfügen
End Sub

Private Sub Einfügen()
'EINFÜGEN
    
    newText = Text2.Text
    newTextOben = ""
    newTextUnten = ""

    For i = 1 To Len(newText)
        If Mid$(newText, i, 1) = "<" Then
            newTextOben = Left$(newText, i - 1)
        ElseIf Mid$(newText, i, 1) = ">" Then
            For j = i + 1 To Len(newText)
                newTextUnten = newTextUnten & Mid$(newText, j, 1)
            Next j
            Exit For
        End If
    Next i
    
    Text2.Text = newTextOben & nDummy & newTextUnten
End Sub

Private Sub cmdFiltern_Click()
    Call Filtern
    cmdFiltern.Enabled = False
End Sub

Private Sub Form_Load()
    Text1.Text = "shdojshndh<gefilterter Text>shdodnsj"
    Text2.Text = "Hier kommt der gefilterte Text hin!"
End Sub
 
Zurück